From 4416f3525b9b6abf8cc465bc8b866f1baaa6cd82 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 15 Sep 2026 16:02:13 +0000 Subject: [PATCH] Canonicalize generated functions for Core witnesses (#7729) Use a single `SemIR::Function` per `Core` interface method, whether it's generated locally or imported. This prevents generating duplicate functions, which lead to different types when the witness appears in a `FacetValue` as part of a specific for a class. We use a `CanonicalValueStore` of `GeneratedFunction` objects that allow finding an existing FunctionId for a `Generated` special function before (re-)generating it. Mangling for `Generated` functions is also moved to use the values from the `GeneratedFunction`'s canonicalization key, so that we have a consistent source of truth for the unique ID of a `Generated` function across all files. New tests are in `toolchain/check/testdata/impl/custom_witness/destroy.carbon`. --- scripts/lldbinit.py | 11 +- toolchain/check/call.cpp | 2 +- toolchain/check/context.h | 3 + toolchain/check/cpp/impl_lookup.cpp | 5 +- toolchain/check/cpp/operators.cpp | 54 +- toolchain/check/custom_witness.cpp | 179 +- toolchain/check/custom_witness.h | 15 +- toolchain/check/dump.cpp | 6 + toolchain/check/eval.cpp | 2 +- toolchain/check/eval_inst.cpp | 3 +- toolchain/check/facet_type.h | 3 + toolchain/check/import_ref.cpp | 104 +- toolchain/check/merge.cpp | 8 +- toolchain/check/testdata/array/basics.carbon | 60 +- toolchain/check/testdata/array/import.carbon | 14 +- .../testdata/array/index_not_literal.carbon | 14 +- .../array/init_dependent_bound.carbon | 68 +- toolchain/check/testdata/as/basics.carbon | 38 +- toolchain/check/testdata/as/const.carbon | 26 +- .../check/testdata/as/maybe_unformed.carbon | 16 +- toolchain/check/testdata/as/partial.carbon | 32 +- toolchain/check/testdata/as/var_init.carbon | 12 +- .../testdata/basics/dump_sem_ir_ranges.carbon | 22 +- .../basics/duplicate_name_same_line.carbon | 14 +- .../class/access/access_modifiers.carbon | 16 +- .../testdata/class/adapter/adapt_copy.carbon | 122 +- .../check/testdata/class/destroy_calls.carbon | 174 +- .../testdata/class/field/field_access.carbon | 28 +- .../class/field/field_access_in_value.carbon | 28 +- .../testdata/class/generic/import.carbon | 36 +- .../check/testdata/class/generic/init.carbon | 68 +- .../testdata/class/generic/member_type.carbon | 28 +- .../class/generic/method_deduce.carbon | 12 +- .../check/testdata/class/generic/self.carbon | 14 +- toolchain/check/testdata/class/import.carbon | 58 +- .../testdata/class/import_member_cycle.carbon | 10 +- .../class/inheritance/derived_to_base.carbon | 16 +- .../class/inheritance/import_base.carbon | 20 +- toolchain/check/testdata/class/init_as.carbon | 20 +- toolchain/check/testdata/class/local.carbon | 16 +- .../check/testdata/class/method/method.carbon | 28 +- .../class/method/static_method.carbon | 12 +- .../testdata/class/method/virtual.carbon | 66 +- toolchain/check/testdata/class/nested.carbon | 44 +- .../check/testdata/class/nested_name.carbon | 16 +- .../testdata/class/reorder_qualified.carbon | 52 +- toolchain/check/testdata/class/scope.carbon | 16 +- .../testdata/class/self/fail_ref_self.carbon | 12 +- .../testdata/class/self/raw_self_type.carbon | 14 +- toolchain/check/testdata/deduce/array.carbon | 84 +- .../check/testdata/deduce/conversion.carbon | 24 +- .../check/testdata/deduce/generic_type.carbon | 12 +- .../value_with_type_through_access.carbon | 70 +- toolchain/check/testdata/eval/call.carbon | 84 +- .../facet/call_combined_impl_witness.carbon | 12 +- ...t_class_type_to_generic_facet_value.carbon | 12 +- ...rt_class_value_to_facet_value_value.carbon | 12 +- ..._value_to_generic_facet_value_value.carbon | 34 +- ...t_value_as_type_knows_original_type.carbon | 16 +- ..._value_to_generic_facet_value_value.carbon | 22 +- ...convert_facet_value_value_to_itself.carbon | 12 +- ...uction_uses_runtime_type_conversion.carbon | 12 +- toolchain/check/testdata/for/actual.carbon | 16 +- toolchain/check/testdata/for/basic.carbon | 44 +- toolchain/check/testdata/for/pattern.carbon | 198 +-- .../check/testdata/function/call/alias.carbon | 10 +- .../call/fail_return_type_mismatch.carbon | 12 +- .../check/testdata/function/call/form.carbon | 54 +- .../check/testdata/function/call/i32.carbon | 12 +- .../function/call/more_param_ir.carbon | 14 +- .../check/testdata/function/call/ref.carbon | 24 +- .../function/call/return_implicit.carbon | 10 +- .../fail_import_incomplete_return.carbon | 16 +- .../testdata/function/generic/deduce.carbon | 12 +- .../function/generic/resolve_used.carbon | 36 +- .../function/generic/return_slot.carbon | 36 +- toolchain/check/testdata/generic/local.carbon | 16 +- .../check/testdata/generic/var_param.carbon | 12 +- toolchain/check/testdata/if/lifetime.carbon | 12 +- toolchain/check/testdata/if_expr/basic.carbon | 14 +- .../if_expr/constant_condition.carbon | 30 +- .../check/testdata/if_expr/struct.carbon | 14 +- .../impl/custom_witness/destroy.carbon | 74 + .../testdata/impl/extend_impl_generic.carbon | 28 +- .../impl/fail_extend_impl_scope.carbon | 12 +- .../testdata/impl/fail_impl_as_scope.carbon | 12 +- toolchain/check/testdata/impl/impl_as.carbon | 12 +- .../check/testdata/impl/impl_thunk.carbon | 38 +- .../check/testdata/impl/import_thunk.carbon | 58 +- .../impl/lookup/canonical_query_self.carbon | 14 +- .../check/testdata/impl/lookup/import.carbon | 48 +- .../testdata/impl/lookup/transitive.carbon | 12 +- .../check/testdata/index/expr_category.carbon | 32 +- .../testdata/index/fail_expr_category.carbon | 32 +- .../testdata/index/fail_name_not_found.carbon | 12 +- .../testdata/interface/default_fn.carbon | 12 +- .../testdata/interface/generic_method.carbon | 148 +- .../check/testdata/interface/modifiers.carbon | 36 +- .../cpp/class/import/constructor.carbon | 2 +- .../interop/cpp/class/import/method.carbon | 30 +- .../testdata/interop/cpp/enum/copy.carbon | 42 +- .../cpp/function/export/generic.carbon | 38 +- .../import/arithmetic_types_bridged.carbon | 208 +-- .../cpp/function/import/decayed_param.carbon | 60 +- .../cpp/function/import/full_semir.carbon | 24 +- .../interop/cpp/function/import/inline.carbon | 22 +- .../cpp/function/import/pointer.carbon | 240 +-- .../interop/cpp/function/import/return.carbon | 50 +- .../cpp/function/import/void_pointer.carbon | 104 +- .../testdata/interop/cpp/impls/destroy.carbon | 24 +- .../testdata/interop/cpp/macros/macros.carbon | 42 +- .../cpp/operators/arithmetic_operators.carbon | 104 +- .../interop/cpp/operators/operators.carbon | 54 +- .../long_and_long_long.darwin.carbon | 150 +- .../long_and_long_long.llp64.carbon | 166 +- .../long_and_long_long.lp64.carbon | 166 +- .../testdata/interop/cpp/range_for.carbon | 1530 ++++++++--------- .../cpp/stdlib/initializer_list.carbon | 18 +- .../interop/cpp/type_alias/import.carbon | 36 +- toolchain/check/testdata/let/lifetime.carbon | 20 +- .../merging_with_indirections.carbon | 16 +- .../check/testdata/namespace/shadow.carbon | 12 +- .../testdata/operators/builtin/and.carbon | 32 +- .../operators/builtin/assignment.carbon | 42 +- .../fail_assignment_to_non_assignable.carbon | 16 +- .../fail_redundant_compound_access.carbon | 12 +- .../builtin/fail_type_mismatch.carbon | 10 +- .../fail_type_mismatch_assignment.carbon | 12 +- .../testdata/operators/builtin/or.carbon | 32 +- .../operators/builtin/unary_op.carbon | 20 +- .../operators/overloaded/fail_no_impl.carbon | 12 +- .../operators/overloaded/implicit_as.carbon | 20 +- .../operators/overloaded/index.carbon | 12 +- .../check/testdata/package_expr/syntax.carbon | 16 +- .../check/testdata/patterns/underscore.carbon | 10 +- .../testdata/pointer/address_of_deref.carbon | 12 +- .../testdata/pointer/address_of_lvalue.carbon | 56 +- toolchain/check/testdata/pointer/basic.carbon | 22 +- .../fail_return_with_returned_var.carbon | 12 +- .../fail_returned_var_no_return_type.carbon | 20 +- .../return/fail_returned_var_shadow.carbon | 24 +- .../return/fail_returned_var_type.carbon | 12 +- .../return/import_convert_function.carbon | 82 +- .../check/testdata/return/returned_var.carbon | 12 +- .../testdata/return/returned_var_scope.carbon | 24 +- .../struct/literal_member_access.carbon | 14 +- .../struct/nested_struct_in_place.carbon | 16 +- .../testdata/tuple/in_place_tuple_init.carbon | 44 +- .../check/testdata/tuple/tuple_pattern.carbon | 40 +- .../testdata/var/destroy_control_flow.carbon | 104 +- .../testdata/var/fail_duplicate_decl.carbon | 14 +- .../testdata/var/fail_init_with_self.carbon | 10 +- .../var/global_lookup_in_scope.carbon | 12 +- .../check/testdata/var/initialization.carbon | 20 +- toolchain/check/testdata/var/lifetime.carbon | 24 +- toolchain/check/testdata/var/lookup.carbon | 10 +- toolchain/check/testdata/var/shadowing.carbon | 18 +- .../check/testdata/var/var_pattern.carbon | 120 +- .../check/testdata/while/lifetime.carbon | 12 +- .../compile/optimize/optimize_debug.carbon | 4 +- .../compile/optimize/optimize_default.carbon | 4 +- .../compile/optimize/optimize_none.carbon | 6 +- .../compile/optimize/optimize_size.carbon | 6 +- .../compile/optimize/optimize_speed.carbon | 4 +- toolchain/lower/file_context.cpp | 9 +- toolchain/lower/handle_call.cpp | 2 +- .../testdata/array/array_in_place.carbon | 14 +- .../testdata/array/assign_return_value.carbon | 16 +- toolchain/lower/testdata/array/base.carbon | 38 +- .../testdata/array/function_param.carbon | 10 +- toolchain/lower/testdata/array/iterate.carbon | 350 ++-- toolchain/lower/testdata/array/layout.carbon | 14 +- toolchain/lower/testdata/builtins/char.carbon | 10 +- toolchain/lower/testdata/builtins/cpp.carbon | 14 +- .../testdata/builtins/maybe_unformed.carbon | 26 +- toolchain/lower/testdata/class/adapt.carbon | 18 +- toolchain/lower/testdata/class/basic.carbon | 18 +- toolchain/lower/testdata/class/convert.carbon | 14 +- toolchain/lower/testdata/class/field.carbon | 54 +- toolchain/lower/testdata/class/generic.carbon | 40 +- toolchain/lower/testdata/class/static.carbon | 6 +- toolchain/lower/testdata/class/virtual.carbon | 190 +- toolchain/lower/testdata/for/bindings.carbon | 98 +- .../lower/testdata/for/break_continue.carbon | 414 +++-- toolchain/lower/testdata/for/for.carbon | 416 +++-- .../lower/testdata/function/call/form.carbon | 18 +- .../lower/testdata/function/call/i32.carbon | 6 +- .../testdata/function/call/ref_param.carbon | 6 +- .../testdata/function/call/ref_return.carbon | 6 +- .../call/tuple_param_with_return_slot.carbon | 10 +- .../testdata/function/call/var_param.carbon | 6 +- .../function/definition/destroy.carbon | 20 +- .../function/definition/var_param.carbon | 26 +- .../testdata/function/generic/call.carbon | 24 +- .../function/generic/call_basic.carbon | 56 +- .../function/generic/call_basic_depth.carbon | 18 +- .../function/generic/call_deref_ptr.carbon | 36 +- .../call_different_impls_with_const.carbon | 6 +- .../generic/call_different_specific.carbon | 36 +- .../function/generic/call_method.carbon | 12 +- .../generic/call_recursive_basic.carbon | 22 +- .../generic/call_recursive_diamond.carbon | 12 +- .../generic/call_recursive_mutual.carbon | 12 +- .../generic/call_recursive_reorder.carbon | 12 +- .../call_recursive_reorder_more.carbon | 24 +- .../generic/call_recursive_sccs_deep.carbon | 12 +- .../generic/call_specific_in_class.carbon | 26 +- .../testdata/function/generic/import.carbon | 6 +- .../generic/import_core_witness.carbon | 8 +- .../function/generic/import_unused_def.carbon | 14 +- .../generic/type_representation.carbon | 58 +- toolchain/lower/testdata/impl/impl.carbon | 12 +- .../lower/testdata/impl/import_facet.carbon | 16 +- .../lower/testdata/impl/import_thunk.carbon | 72 +- toolchain/lower/testdata/impl/thunk.carbon | 38 +- .../index/array_element_access.carbon | 28 +- .../lower/testdata/interface/modifiers.carbon | 24 +- .../interop/cpp/class/export/class.carbon | 50 +- .../interop/cpp/class/export/method.carbon | 18 +- .../cpp/class/import/conversion.carbon | 6 +- .../interop/cpp/class/import/dynamic.carbon | 14 +- .../interop/cpp/class/import/method.carbon | 10 +- .../interop/cpp/class/virtual_fn.carbon | 16 +- .../lower/testdata/interop/cpp/enum.carbon | 110 +- .../cpp/function/export/constructor.carbon | 6 +- .../cpp/function/export/generic.carbon | 12 +- .../cpp/function/import/function_decl.carbon | 6 +- .../cpp/function/import/import_inline.carbon | 6 +- .../cpp/function/import/parameters.carbon | 32 +- .../interop/cpp/function/import/return.carbon | 56 +- .../testdata/interop/cpp/issue7142.carbon | 14 +- .../lower/testdata/interop/cpp/nullptr.carbon | 34 +- .../lower/testdata/interop/cpp/pointer.carbon | 60 +- .../testdata/interop/cpp/reference.carbon | 24 +- ...td_initializer_list_pointer_pointer.carbon | 18 +- .../std_initializer_list_pointer_size.carbon | 18 +- .../lower/testdata/interop/cpp/void.carbon | 64 +- .../lower/testdata/let/copy_value_rep.carbon | 14 +- toolchain/lower/testdata/let/tuple.carbon | 16 +- .../testdata/operators/assignment.carbon | 12 +- .../lower/testdata/operators/increment.carbon | 6 +- .../testdata/operators/overloaded.carbon | 10 +- .../imported_type_completeness.carbon | 28 +- .../separate_compilation_witness.carbon | 132 +- .../testdata/pointer/address_of_field.carbon | 10 +- .../testdata/pointer/address_of_unused.carbon | 6 +- toolchain/lower/testdata/pointer/basic.carbon | 6 +- .../primitives/numeric_literals.carbon | 20 +- .../lower/testdata/primitives/optional.carbon | 228 +-- .../testdata/return/return_var_byval.carbon | 6 +- toolchain/lower/testdata/return/var.carbon | 6 +- toolchain/lower/testdata/struct/layout.carbon | 62 +- .../testdata/struct/member_access.carbon | 20 +- .../struct/nested_struct_in_place.carbon | 14 +- .../lower/testdata/struct/one_entry.carbon | 14 +- .../lower/testdata/struct/two_entries.carbon | 14 +- .../lower/testdata/template/merging.carbon | 18 +- .../tuple/access/element_access.carbon | 16 +- .../tuple/access/return_value_access.carbon | 12 +- .../tuple/nested_tuple_in_place.carbon | 14 +- .../lower/testdata/tuple/one_entry.carbon | 14 +- .../lower/testdata/tuple/two_entries.carbon | 14 +- .../testdata/tuple/value_formation.carbon | 14 +- .../testdata/var/destroy_control_flow.carbon | 62 +- toolchain/lower/testdata/var/local.carbon | 16 +- toolchain/lower/testdata/var/nested.carbon | 10 +- toolchain/lower/testdata/var/param.carbon | 12 +- .../lower/testdata/var/uninitialized.carbon | 12 +- toolchain/sem_ir/dump.cpp | 17 + toolchain/sem_ir/dump.h | 2 + toolchain/sem_ir/file.cpp | 1 + toolchain/sem_ir/file.h | 10 + toolchain/sem_ir/formatter.cpp | 5 +- toolchain/sem_ir/function.cpp | 18 + toolchain/sem_ir/function.h | 113 +- toolchain/sem_ir/ids.h | 8 + toolchain/sem_ir/mangler.cpp | 26 +- toolchain/sem_ir/typed_insts.h | 5 + 278 files changed, 5941 insertions(+), 5506 deletions(-) diff --git a/scripts/lldbinit.py b/scripts/lldbinit.py index 3c6679b90a56..ff1732ab9157 100644 --- a/scripts/lldbinit.py +++ b/scripts/lldbinit.py @@ -85,24 +85,25 @@ Example usage: "class": "SemIR::MakeClassId", "constant": "SemIR::MakeConstantId", "constraint": "SemIR::MakeNamedConstraintId", - "symbolic_constant": "SemIR::MakeSymbolicConstantId", - "entity_name": "SemIR::MakeEntityNameId", "declared_facet_type": "SemIR::MakeDeclaredFacetTypeId", + "entity_name": "SemIR::MakeEntityNameId", "function": "SemIR::MakeFunctionId", + "generated_function": "SemIR::MakeGeneratedFunctionId", "generic": "SemIR::MakeGenericId", + "identified_facet_type": "SemIR::MakeIdentifiedFacetTypeId", "impl": "SemIR::MakeImplId", - "inst_block": "SemIR::MakeInstBlockId", "inst": "SemIR::MakeInstId", + "inst_block": "SemIR::MakeInstBlockId", "interface": "SemIR::MakeInterfaceId", "import_ir_inst": "SemIR::MakeImportIRInstId", "name": "SemIR::MakeNameId", "name_scope": "SemIR::MakeNameScopeId", - "identified_facet_type": "SemIR::MakeIdentifiedFacetTypeId", - "require_block": "SemIR::MakeRequireImplsBlockId", "require": "SemIR::MakeRequireImplsId", + "require_block": "SemIR::MakeRequireImplsBlockId", "specific": "SemIR::MakeSpecificId", "specific_interface": "SemIR::MakeSpecificInterfaceId", "struct_type_fields": "SemIR::MakeStructTypeFieldsId", + "symbolic_constant": "SemIR::MakeSymbolicConstantId", "type": "SemIR::MakeTypeId", } diff --git a/toolchain/check/call.cpp b/toolchain/check/call.cpp index b45195ee0021..7545e98b219d 100644 --- a/toolchain/check/call.cpp +++ b/toolchain/check/call.cpp @@ -297,7 +297,7 @@ auto PerformCallToFunction(Context& context, SemIR::LocId loc_id, case SemIR::Function::SpecialFunctionKind::None: case SemIR::Function::SpecialFunctionKind::Builtin: - case SemIR::Function::SpecialFunctionKind::CoreWitness: + case SemIR::Function::SpecialFunctionKind::Generated: case SemIR::Function::SpecialFunctionKind::CppThunk: { return GetOrAddInst(context, loc_id, {.type_id = return_type_id, diff --git a/toolchain/check/context.h b/toolchain/check/context.h index 248736e36a93..7a9960aca33c 100644 --- a/toolchain/check/context.h +++ b/toolchain/check/context.h @@ -372,6 +372,9 @@ class Context { return sem_ir().cpp_overload_sets(); } auto functions() -> SemIR::FunctionStore& { return sem_ir().functions(); } + auto generated_functions() -> SemIR::GeneratedFunctionStore& { + return sem_ir().generated_functions(); + } auto thunks() -> SemIR::ThunkStore& { return sem_ir().thunks(); } auto classes() -> SemIR::ClassStore& { return sem_ir().classes(); } auto fields() -> SemIR::FieldStore& { return sem_ir().fields(); } diff --git a/toolchain/check/cpp/impl_lookup.cpp b/toolchain/check/cpp/impl_lookup.cpp index 37f278d0f97a..98358f320d13 100644 --- a/toolchain/check/cpp/impl_lookup.cpp +++ b/toolchain/check/cpp/impl_lookup.cpp @@ -164,9 +164,8 @@ static auto BuildCopyWitness( } // Otherwise it's an enum (or eventually a C struct type). Perform a primitive // copy. - return BuildPrimitiveCopyWitness( - context, loc_id, GetClassScope(context, query_self_const_id), - query_self_const_id, query_specific_interface_id); + return BuildPrimitiveCopyWitness(context, loc_id, query_self_const_id, + query_specific_interface_id); } static auto BuildCppUnsafeDerefWitness( diff --git a/toolchain/check/cpp/operators.cpp b/toolchain/check/cpp/operators.cpp index 7cf2eabf5269..5a1acbf8738c 100644 --- a/toolchain/check/cpp/operators.cpp +++ b/toolchain/check/cpp/operators.cpp @@ -7,6 +7,7 @@ #include "clang/Sema/Initialization.h" #include "clang/Sema/Overload.h" #include "clang/Sema/Sema.h" +#include "toolchain/base/kind_switch.h" #include "toolchain/check/convert.h" #include "toolchain/check/core_identifier.h" #include "toolchain/check/cpp/import.h" @@ -16,6 +17,7 @@ #include "toolchain/check/custom_witness.h" #include "toolchain/check/function.h" #include "toolchain/check/inst.h" +#include "toolchain/check/name_lookup.h" #include "toolchain/check/pattern.h" #include "toolchain/check/type.h" #include "toolchain/check/type_completion.h" @@ -491,6 +493,13 @@ namespace { struct OverloadedOperatorInfo { enum ReturnType { FirstArgType, Bool }; + // The name of the interface containing the operator function. This affects + // the mangled name and canonicalization of Generated functions. + // + // This must always be set, so we pick a default value that does not represent + // an interface, so is never correct. + CoreIdentifier interface_name = CoreIdentifier::VoidBase; + // The name for the function used to implement this operator. This is usually // `Op`. This mostly only affects the mangled name, but might show up in // diagnostics. @@ -517,49 +526,83 @@ static auto GetBuiltinOperatorInfo(clang::OverloadedOperatorKind kind) // Bitwise operators. In C++, the return type is computed with the usual // arithmetic conversions, but we will just use the type of the arguments. table[clang::OO_Amp] = { + .interface_name = CoreIdentifier::BitAndWith, .builtin_kind = SemIR::BuiltinFunctionKind::IntAnd, .return_type = OverloadedOperatorInfo::ReturnType::FirstArgType}; table[clang::OO_Pipe] = { + .interface_name = CoreIdentifier::BitOrWith, .builtin_kind = SemIR::BuiltinFunctionKind::IntOr, .return_type = OverloadedOperatorInfo::ReturnType::FirstArgType}; table[clang::OO_Caret] = { + .interface_name = CoreIdentifier::BitXorWith, .builtin_kind = SemIR::BuiltinFunctionKind::IntXor, .return_type = OverloadedOperatorInfo::ReturnType::FirstArgType}; table[clang::OO_Tilde] = { + .interface_name = CoreIdentifier::BitComplement, .builtin_kind = SemIR::BuiltinFunctionKind::IntComplement, .return_type = OverloadedOperatorInfo::ReturnType::FirstArgType}; // Comparison operators. table[clang::OO_EqualEqual] = { + .interface_name = CoreIdentifier::OrderedWith, .op_name = CoreIdentifier::Equal, .builtin_kind = SemIR::BuiltinFunctionKind::IntEq, .return_type = OverloadedOperatorInfo::ReturnType::Bool}; table[clang::OO_ExclaimEqual] = { + .interface_name = CoreIdentifier::OrderedWith, .op_name = CoreIdentifier::NotEqual, .builtin_kind = SemIR::BuiltinFunctionKind::IntNeq, .return_type = OverloadedOperatorInfo::ReturnType::Bool}; table[clang::OO_Less] = { + .interface_name = CoreIdentifier::OrderedWith, .op_name = CoreIdentifier::Less, .builtin_kind = SemIR::BuiltinFunctionKind::IntLess, .return_type = OverloadedOperatorInfo::ReturnType::Bool}; table[clang::OO_LessEqual] = { + .interface_name = CoreIdentifier::OrderedWith, .op_name = CoreIdentifier::LessOrEquivalent, .builtin_kind = SemIR::BuiltinFunctionKind::IntLessEq, .return_type = OverloadedOperatorInfo::ReturnType::Bool}; table[clang::OO_Greater] = { + .interface_name = CoreIdentifier::OrderedWith, .op_name = CoreIdentifier::Greater, .builtin_kind = SemIR::BuiltinFunctionKind::IntGreater, .return_type = OverloadedOperatorInfo::ReturnType::Bool}; table[clang::OO_GreaterEqual] = { + .interface_name = CoreIdentifier::OrderedWith, .op_name = CoreIdentifier::GreaterOrEquivalent, .builtin_kind = SemIR::BuiltinFunctionKind::IntGreaterEq, .return_type = OverloadedOperatorInfo::ReturnType::Bool}; - return table; }(); return OpTable[kind]; } +static auto GetCoreInterfaceId(Context& context, SemIR::LocId loc_id, + CoreIdentifier interface_name) + -> SemIR::InterfaceId { + auto inst_id = LookupNameInCore(context, loc_id, interface_name); + + // Non-generic interfaces. + if (auto facet_type = context.insts().TryGetAs(inst_id)) { + const auto& declared = + context.declared_facet_types().Get(facet_type->declared_facet_type_id); + auto single = declared.TryAsSingleExtend(); + CARBON_KIND_SWITCH(*single) { + case CARBON_KIND(SemIR::SpecificInterface si): { + return si.interface_id; + } + case CARBON_KIND(SemIR::SpecificNamedConstraint _): { + CARBON_FATAL("Operators in named constraints are not yet needed"); + } + } + } + + auto type_id = context.insts().Get(inst_id).type_id(); + auto generic = context.types().GetAs(type_id); + return generic.interface_id; +} + // Builds a Carbon builtin function declaration corresponding to an overload // candidate that selected a C++ builtin operator. Returns None if no // corresponding builtin function could or should be built. @@ -572,6 +615,9 @@ static auto TryBuildBuiltinOperator( return SemIR::InstId::None; } + CARBON_CHECK(info.interface_name != CoreIdentifier::VoidBase, + "builtin operator interface was not specified"); + // Import the argument types. For now, we only accept enum types. // TODO: Consider expanding this to other types. llvm::SmallVector arg_type_ids; @@ -617,8 +663,10 @@ static auto TryBuildBuiltinOperator( break; } - return MakeBuiltinOperatorFunction(context, arg_type_ids, return_type_id, - info.op_name, info.builtin_kind); + return MakeBuiltinOperatorFunction( + context, loc_id, arg_type_ids, return_type_id, info.op_name, + info.builtin_kind, + GetCoreInterfaceId(context, loc_id, info.interface_name)); } namespace { diff --git a/toolchain/check/custom_witness.cpp b/toolchain/check/custom_witness.cpp index ebdcb7802801..c54ff59226b3 100644 --- a/toolchain/check/custom_witness.cpp +++ b/toolchain/check/custom_witness.cpp @@ -21,6 +21,7 @@ #include "toolchain/sem_ir/associated_constant.h" #include "toolchain/sem_ir/builtin_function_kind.h" #include "toolchain/sem_ir/constant.h" +#include "toolchain/sem_ir/function.h" #include "toolchain/sem_ir/ids.h" #include "toolchain/sem_ir/type_info.h" #include "toolchain/sem_ir/typed_insts.h" @@ -45,34 +46,99 @@ static auto GetFacetAsType(Context& context, return context.types().GetTypeIdForTypeInstId(facet_or_type_id); } +// Make the CanonicalKey for a generated function `op_name_id` in the interface +// `core_specific_interface`. +static auto MakeGeneratedFunctionKey( + Context& context, SemIR::SpecificInterface core_specific_interface, + SemIR::TypeId self_type_id, SemIR::NameId op_name_id) + -> SemIR::GeneratedFunction::CanonicalKey { + // TODO: We'd like to build an Interface-with-Self specific here for the key, + // via MakeSpecificWithInnerSelf. But we are unable to make a facet value for + // Self with GetConstantFacetValueForTypeAndInterface() as we have no witness + // for the interface, because we don't have a CustomWitness instruction yet. + // To do so, we need to move the witness table out of the CustomWitness + // instruction, so that we can reorder things. Then we can make the + // CustomWitness inst first, and mutate the table as we build up the entries + // for it. For now, we use the InterfaceId and Interface-without-Self + // specific, and store the self TypeId separately instead. + auto specific_interface_id = + context.specific_interfaces().Add(core_specific_interface); + + return SemIR::GeneratedFunction::CanonicalKey{specific_interface_id, + self_type_id, op_name_id}; +} +// Attempts to return the canonical Function for a generated function. +// +// On success, returns the Decl and Function IDs of the canonical Function. +// Otherwise, it returns None for those IDs. +static auto TryGetGeneratedFunction(Context& context, + SemIR::GeneratedFunction::CanonicalKey key) + -> std::pair { + if (auto generated_id = context.generated_functions().Lookup(key); + generated_id.has_value()) { + const auto& generated = context.generated_functions().Get(generated_id); + return {generated.decl_id, generated.function_id}; + } + return {SemIR::InstId::None, SemIR::FunctionId::None}; +} + +static auto MakeCoreSpecificInterface( + Context& context, SemIR::LocId loc_id, SemIR::InterfaceId interface_id, + SemIR::GenericId interface_generic_id, + llvm::ArrayRef param_types_without_self) + -> SemIR::SpecificInterface { + llvm::SmallVector params_without_self( + llvm::map_range(param_types_without_self, [&](SemIR::TypeId type_id) { + return context.types().GetTypeInstId(type_id); + })); + CARBON_CHECK(!params_without_self.empty() == + interface_generic_id.has_value()); + auto specific_id = SemIR::SpecificId::None; + if (!params_without_self.empty()) { + specific_id = MakeSpecific(context, loc_id, interface_generic_id, + params_without_self); + } + return {interface_id, specific_id}; +} + // Returns a manufactured operator function. -auto MakeBuiltinOperatorFunction(Context& context, +auto MakeBuiltinOperatorFunction(Context& context, SemIR::LocId loc_id, llvm::ArrayRef param_types, SemIR::TypeId return_type_id, CoreIdentifier op_name, SemIR::BuiltinFunctionKind builtin_kind, - SemIR::NameScopeId parent_scope_id) + SemIR::InterfaceId interface_id) -> SemIR::InstId { CARBON_CHECK(!param_types.empty()); - auto self_type_id = param_types.front(); + auto self_type_id = param_types.consume_front(); auto name_id = context.core_identifiers().AddNameId(op_name); - - llvm::SmallVector param_kinds(param_types.size() - 1, - ParamPatternKind::Value); - auto [decl_id, function_id] = MakeGeneratedFunctionDecl( - context, SemIR::LocId::None, - {.parent_scope_id = parent_scope_id, - .name_id = name_id, - .self_type_id = self_type_id, - .self_kind = ParamPatternKind::Value, - .param_type_ids = param_types.drop_front(), - .param_kinds = param_kinds, - .return_form = - ReturnExprAsForm(context, SemIR::LocId::None, - context.types().GetTypeInstId(return_type_id))}); - - auto& function = context.functions().Get(function_id); - function.SetCoreWitness(builtin_kind); + const auto& interface = context.interfaces().Get(interface_id); + auto specific_interface = MakeCoreSpecificInterface( + context, loc_id, interface_id, interface.generic_id, param_types); + auto canonical_key = MakeGeneratedFunctionKey(context, specific_interface, + self_type_id, name_id); + auto [decl_id, function_id] = TryGetGeneratedFunction(context, canonical_key); + if (!decl_id.has_value()) { + llvm::SmallVector param_kinds(param_types.size(), + ParamPatternKind::Value); + std::tie(decl_id, function_id) = MakeGeneratedFunctionDecl( + context, SemIR::LocId::None, + {.parent_scope_id = interface.scope_with_self_id, + .name_id = name_id, + .self_type_id = self_type_id, + .self_kind = ParamPatternKind::Value, + .param_type_ids = param_types, + .param_kinds = param_kinds, + .return_form = + ReturnExprAsForm(context, SemIR::LocId::None, + context.types().GetTypeInstId(return_type_id))}); + auto& function = context.functions().Get(function_id); + function.SetGenerated(context.generated_functions().Add( + {.canonical_key = canonical_key, + .function_id = function_id, + .decl_id = decl_id, + .builtin_function_kind = builtin_kind})); + } return decl_id; } @@ -343,27 +409,45 @@ static auto MakeDestroyOpBody(Context& context, SemIR::LocId loc_id, // to `self_type_id`. static auto MakeDestroyOpFunction(Context& context, SemIR::LocId loc_id, SemIR::TypeId self_type_id, - SemIR::NameScopeId parent_scope_id, + SemIR::InterfaceId interface_id, DestroyFormat format) -> SemIR::InstId { auto name_id = context.core_identifiers().AddNameId(CoreIdentifier::Op); + const auto& interface = context.interfaces().Get(interface_id); + auto specific_interface = MakeCoreSpecificInterface( + context, loc_id, interface_id, interface.generic_id, {}); + auto canonical_key = MakeGeneratedFunctionKey(context, specific_interface, + self_type_id, name_id); + auto [decl_id, function_id] = TryGetGeneratedFunction(context, canonical_key); + if (!decl_id.has_value()) { + std::tie(decl_id, function_id) = MakeGeneratedFunctionDecl( + context, loc_id, + {.parent_scope_id = interface.scope_with_self_id, + .name_id = name_id, + .self_type_id = self_type_id, + .self_kind = ParamPatternKind::Ref}); - auto [decl_id, function_id] = - MakeGeneratedFunctionDecl(context, loc_id, - {.parent_scope_id = parent_scope_id, - .name_id = name_id, - .self_type_id = self_type_id, - .self_kind = ParamPatternKind::Ref}); + auto& function = context.functions().Get(function_id); - auto& function = context.functions().Get(function_id); + auto builtin_kind = SemIR::BuiltinFunctionKind::None; + switch (format) { + case DestroyFormat::Trivial: + builtin_kind = SemIR::BuiltinFunctionKind::NoOp; + break; + case DestroyFormat::NonTrivial: { + auto body_id = MakeDestroyOpBody(context, loc_id, self_type_id, + function.self_param_id); + function.body_block_ids.push_back(body_id); + break; + } + case DestroyFormat::NoDestroy: + CARBON_FATAL("unexpected DestroyFormat::NoDestroy"); + } - if (format == DestroyFormat::Trivial) { - function.SetCoreWitness(SemIR::BuiltinFunctionKind::NoOp); - } else { - CARBON_CHECK(format == DestroyFormat::NonTrivial); - function.SetCoreWitness(SemIR::BuiltinFunctionKind::None); - auto body_id = MakeDestroyOpBody(context, loc_id, self_type_id, - function.self_param_id); - function.body_block_ids.push_back(body_id); + function.SetGenerated(context.generated_functions().Add( + {.canonical_key = canonical_key, + .function_id = function_id, + .decl_id = decl_id, + .builtin_function_kind = builtin_kind})); } return decl_id; @@ -584,13 +668,17 @@ auto GetCoreInterface(Context& context, SemIR::InterfaceId interface_id) } auto BuildPrimitiveCopyWitness( - Context& context, SemIR::LocId loc_id, SemIR::NameScopeId parent_scope_id, + Context& context, SemIR::LocId loc_id, SemIR::ConstantId query_self_const_id, SemIR::SpecificInterfaceId query_specific_interface_id) -> SemIR::InstId { auto self_type_id = GetFacetAsType(context, query_self_const_id); + auto op_id = MakeBuiltinOperatorFunction( - context, {self_type_id}, self_type_id, CoreIdentifier::Op, - SemIR::BuiltinFunctionKind::PrimitiveCopy, parent_scope_id); + context, loc_id, {self_type_id}, self_type_id, CoreIdentifier::Op, + SemIR::BuiltinFunctionKind::PrimitiveCopy, + context.specific_interfaces() + .Get(query_specific_interface_id) + .interface_id); return BuildCustomWitness(context, loc_id, query_self_const_id, query_specific_interface_id, {op_id}); } @@ -604,17 +692,12 @@ static auto BuildDestroyWitness( DestroyFormat format) -> SemIR::InstId { CARBON_CHECK(format != DestroyFormat::NoDestroy); - // Mark functions with the interface's scope as a hint to mangling. This - // does not add them to the scope. - auto query_specific_interface = - context.specific_interfaces().Get(query_specific_interface_id); - auto parent_scope_id = context.interfaces() - .Get(query_specific_interface.interface_id) - .scope_without_self_id; - auto self_type_id = GetFacetAsType(context, query_self_const_id); auto op_id = MakeDestroyOpFunction(context, loc_id, self_type_id, - parent_scope_id, format); + context.specific_interfaces() + .Get(query_specific_interface_id) + .interface_id, + format); return BuildCustomWitness(context, loc_id, query_self_const_id, query_specific_interface_id, {op_id}); } diff --git a/toolchain/check/custom_witness.h b/toolchain/check/custom_witness.h index 96a2c3b9ee74..086049b4e2e3 100644 --- a/toolchain/check/custom_witness.h +++ b/toolchain/check/custom_witness.h @@ -22,7 +22,7 @@ auto BuildCustomWitness(Context& context, SemIR::LocId loc_id, // Builds a witness that the given type is copyable via a primitive copy. auto BuildPrimitiveCopyWitness( - Context& context, SemIR::LocId loc_id, SemIR::NameScopeId parent_scope_id, + Context& context, SemIR::LocId loc_id, SemIR::ConstantId query_self_const_id, SemIR::SpecificInterfaceId query_specific_interface_id) -> SemIR::InstId; @@ -30,11 +30,14 @@ auto BuildPrimitiveCopyWitness( // `param_types` contains the parameter types. The first element of // `param_types` is treated as the `self` type, and any subsequent elements // are treated as the types of the remaining explicit parameters. -auto MakeBuiltinOperatorFunction( - Context& context, llvm::ArrayRef param_types, - SemIR::TypeId return_type_id, CoreIdentifier op_name, - SemIR::BuiltinFunctionKind builtin_kind, - SemIR::NameScopeId parent_scope_id = SemIR::NameScopeId::None) +// The `interface_id` is the interface containing the `op_name` function, which +// should be an interface in Core. +auto MakeBuiltinOperatorFunction(Context& context, SemIR::LocId loc_id, + llvm::ArrayRef param_types, + SemIR::TypeId return_type_id, + CoreIdentifier op_name, + SemIR::BuiltinFunctionKind builtin_kind, + SemIR::InterfaceId interface_id) -> SemIR::InstId; // Builds a witness that the given type is trivially destroyable. diff --git a/toolchain/check/dump.cpp b/toolchain/check/dump.cpp index 52b7974f39bc..3a16396a1809 100644 --- a/toolchain/check/dump.cpp +++ b/toolchain/check/dump.cpp @@ -48,6 +48,12 @@ LLVM_DUMP_METHOD static auto Dump(const Context& context, return SemIR::Dump(context.sem_ir(), bundle_id); } +LLVM_DUMP_METHOD static auto Dump( + const Context& context, SemIR::GeneratedFunctionId generated_function_id) + -> std::string { + return SemIR::Dump(context.sem_ir(), generated_function_id); +} + LLVM_DUMP_METHOD static auto Dump(const Context& context, SemIR::ClassId class_id) -> std::string { return SemIR::Dump(context.sem_ir(), class_id); diff --git a/toolchain/check/eval.cpp b/toolchain/check/eval.cpp index ce5523a0c881..75e121740ef7 100644 --- a/toolchain/check/eval.cpp +++ b/toolchain/check/eval.cpp @@ -2943,7 +2943,7 @@ static auto MakeConstantForCall(EvalContext& eval_context, auto evaluation_mode = SemIR::Function::EvaluationMode::None; if (auto* callee_function = std::get_if(&callee)) { function = &eval_context.functions().Get(callee_function->function_id); - builtin_kind = function->builtin_function_kind(); + builtin_kind = function->GetBuiltinFunctionKind(eval_context.sem_ir()); evaluation_mode = function->evaluation_mode; // Calls to builtins and to `eval` or `musteval` functions might be // constant. diff --git a/toolchain/check/eval_inst.cpp b/toolchain/check/eval_inst.cpp index dcffac3760db..1012e76eedb0 100644 --- a/toolchain/check/eval_inst.cpp +++ b/toolchain/check/eval_inst.cpp @@ -749,7 +749,8 @@ auto EvalConstantInst(Context& context, SemIR::InstId inst_id, SemIR::GetCalleeAsFunction(context.sem_ir(), inst.callee_id); const auto& fn = context.functions().Get(callee_function.function_id); if (!callee_function.self_type_id.has_value() && - fn.builtin_function_kind() != SemIR::BuiltinFunctionKind::NoOp && + fn.GetBuiltinFunctionKind(context.sem_ir()) != + SemIR::BuiltinFunctionKind::NoOp && fn.virtual_modifier != SemIR::Function::VirtualModifier::Abstract) { // This is not an associated function. Those will be required to be defined // as part of checking that the impl is complete. diff --git a/toolchain/check/facet_type.h b/toolchain/check/facet_type.h index bcb914d220cf..52b2ccdec037 100644 --- a/toolchain/check/facet_type.h +++ b/toolchain/check/facet_type.h @@ -71,6 +71,9 @@ auto GetConstantFacetValueForType(Context& context, SemIR::TypeInstId type_inst_id) -> SemIR::ConstantId; +// Make a facet value for a type value, which has a FacetType containing the +// `specific_interface` as its type. Returns a constant value, whose instruction +// payload is a FacetValue. auto GetConstantFacetValueForTypeAndInterface( Context& context, SemIR::TypeInstId type_inst_id, SemIR::SpecificInterface specific_interface, SemIR::InstId witness_id) diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index b1b5c8fe699b..56cac593ae7b 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -25,8 +25,10 @@ #include "toolchain/check/type.h" #include "toolchain/check/type_completion.h" #include "toolchain/parse/node_ids.h" +#include "toolchain/sem_ir/builtin_function_kind.h" #include "toolchain/sem_ir/constant.h" #include "toolchain/sem_ir/file.h" +#include "toolchain/sem_ir/function.h" #include "toolchain/sem_ir/identified_facet_type.h" #include "toolchain/sem_ir/ids.h" #include "toolchain/sem_ir/impl.h" @@ -2406,9 +2408,10 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, // Make a declaration of a function. This is done as a separate step from // importing the function declaration in order to resolve cycles. -static auto ImportFunctionDecl(ImportContext& context, - const SemIR::Function& import_function, - SemIR::SpecificId specific_id) +static auto ImportFunctionDecl( + ImportContext& context, const SemIR::Function& import_function, + SemIR::SpecificId specific_id, + SemIR::GeneratedFunction::CanonicalKey generated_function_key) -> std::pair { SemIR::FunctionDecl function_decl = { .type_id = SemIR::TypeId::None, @@ -2446,9 +2449,68 @@ static auto ImportFunctionDecl(ImportContext& context, // Write the function ID and type into the FunctionDecl. auto function_const_id = ReplacePlaceholderImportedInst(context, function_decl_id, function_decl); + + if (generated_function_key.specific_interface_id.has_value()) { + const auto& import_generated = + context.import_ir().generated_functions().Get( + import_function.generated_function_id()); + context.local_functions() + .Get(function_decl.function_id) + .SetGenerated(context.local_ir().generated_functions().Add({ + .canonical_key = generated_function_key, + .function_id = function_decl.function_id, + .decl_id = function_decl_id, + .builtin_function_kind = import_generated.builtin_function_kind, + })); + } + return {function_decl.function_id, function_const_id}; } +struct GeneratedFunctionData { + SemIR::SpecificInterface import_specific_interface; + SpecificInterfaceData specific_data; + SemIR::ConstantId self_type_const_id; + SemIR::NameId name_id; +}; + +static auto GetLocalGeneratedFunctionKeyData( + ImportRefResolver& resolver, + SemIR::GeneratedFunctionId import_generated_function_id) + -> std::optional { + if (!import_generated_function_id.has_value()) { + return std::nullopt; + } + + const auto& import_key = resolver.import_ir() + .generated_functions() + .Get(import_generated_function_id) + .canonical_key; + + auto import_specific_interface = resolver.import_specific_interfaces().Get( + import_key.specific_interface_id); + auto specific_data = + GetLocalSpecificInterfaceData(resolver, import_specific_interface); + auto self_type_const_id = + GetLocalConstantId(resolver, import_key.self_type_id); + auto name_id = GetLocalNameId(resolver, import_key.name_id); + return { + {import_specific_interface, specific_data, self_type_const_id, name_id}}; +} + +static auto GetLocalGeneratedFunctionKey(ImportRefResolver& resolver, + const SemIR::Function& import_function, + const GeneratedFunctionData& data) + -> SemIR::GeneratedFunction::CanonicalKey { + CARBON_CHECK(import_function.generated_function_id().has_value()); + auto specific_interface = GetLocalSpecificInterface( + resolver, data.import_specific_interface, data.specific_data); + auto self_type_id = resolver.local_types().GetTypeIdForTypeConstantId( + data.self_type_const_id); + return {resolver.local_specific_interfaces().Add(specific_interface), + self_type_id, data.name_id}; +} + static auto TryResolveTypedInst(ImportRefResolver& resolver, SemIR::FunctionDecl inst, SemIR::ConstantId function_const_id) @@ -2462,17 +2524,41 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, .GetAs(inst.type_id) .specific_id; auto specific_data = GetLocalSpecificData(resolver, import_specific_id); + auto generated_function_data = GetLocalGeneratedFunctionKeyData( + resolver, import_function.generated_function_id()); if (resolver.HasNewWork()) { // This is the end of the first phase. Don't make a new function yet if // we already have new work. return ResolveResult::Retry(); } + // If the canonical Function for this generated function already exists, + // we dedupe by using it. Otherwise, we record the imported canonicalization + // key with the function. + auto generated_function_key = SemIR::GeneratedFunction::CanonicalKey{ + SemIR::SpecificInterfaceId::None, SemIR::TypeId::None, + SemIR::NameId::None}; + if (generated_function_data) { + // Generated functions are not generic. + CARBON_CHECK(!import_function.generic_id.has_value()); + + generated_function_key = GetLocalGeneratedFunctionKey( + resolver, import_function, *generated_function_data); + auto generated_id = resolver.local_ir().generated_functions().Lookup( + generated_function_key); + if (generated_id.has_value()) { + const auto& generated = + resolver.local_ir().generated_functions().Get(generated_id); + return ResolveResult::Done( + resolver.local_constant_values().Get(generated.decl_id)); + } + } + // On the second phase, create a forward declaration of the function. auto specific_id = GetOrAddLocalSpecific(resolver, import_specific_id, specific_data); - std::tie(function_id, function_const_id) = - ImportFunctionDecl(resolver, import_function, specific_id); + std::tie(function_id, function_const_id) = ImportFunctionDecl( + resolver, import_function, specific_id, generated_function_key); } else { // On the third phase, compute the function ID from the constant value of // the declaration. @@ -2577,11 +2663,13 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, break; } case SemIR::Function::SpecialFunctionKind::Builtin: { - new_function.SetBuiltinFunction(import_function.builtin_function_kind()); + new_function.SetBuiltinFunction( + import_function.non_generated_builtin_function_kind()); break; } - case SemIR::Function::SpecialFunctionKind::CoreWitness: { - new_function.SetCoreWitness(import_function.builtin_function_kind()); + case SemIR::Function::SpecialFunctionKind::Generated: { + // Generated function data is set during phase one when constructing the + // FunctionDecl. break; } case SemIR::Function::SpecialFunctionKind::Thunk: { diff --git a/toolchain/check/merge.cpp b/toolchain/check/merge.cpp index ffa56276e255..d1e585019b35 100644 --- a/toolchain/check/merge.cpp +++ b/toolchain/check/merge.cpp @@ -248,7 +248,13 @@ static auto CheckRedeclParam(Context& context, bool is_implicit_param, bool check_type = true; do { auto patterns = pattern_stack.pop_back_val(); - auto new_param_pattern = context.insts().Get(patterns.new_id); + // Typically the new decl (redecl) is a local instruction and we can just + // use the id directly. But for canonicalized Generated functions, we may + // use an imported function in place of a local decl so the `kind()` would + // be an `ImportRefLoaded`. What we want is the canonical instruction for + // the new pattern regardless. + auto new_param_pattern = context.insts().Get( + context.constant_values().GetConstantInstId(patterns.new_id)); auto prev_param_const_id = SemIR::GetConstantValueInSpecific( context.sem_ir(), prev_specific_id, patterns.prev_id); auto prev_param_pattern = diff --git a/toolchain/check/testdata/array/basics.carbon b/toolchain/check/testdata/array/basics.carbon index 628316971bdd..a9a290a6e5d8 100644 --- a/toolchain/check/testdata/array/basics.carbon +++ b/toolchain/check/testdata/array/basics.carbon @@ -187,8 +187,8 @@ var a: array(1, 1); // CHECK:STDOUT: %tuple.type.8c7: type = tuple_type (%tuple.type.a8c, %tuple.type.a8c) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc10_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc10_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { @@ -224,24 +224,24 @@ var a: array(1, 1); // CHECK:STDOUT: %v.patt: %pattern_type.c3e = ref_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: %v.var_patt: %pattern_type.c3e = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %tuple.type.a8c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.3(%self.param: ref %tuple.type.a8c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.4(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.4(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -269,10 +269,10 @@ var a: array(1, 1); // CHECK:STDOUT: %b.var_patt: %pattern_type.8c1 = var_pattern %b.patt [concrete] // CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b33: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.856, @T.as.DefaultOrUnformed.impl(%tuple.type) [concrete] // CHECK:STDOUT: %DefaultOrUnformed.facet.f59: %DefaultOrUnformed.type = facet_value %tuple.type, (%DefaultOrUnformed.impl_witness.b33) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc7 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc7 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -326,21 +326,21 @@ var a: array(1, 1); // CHECK:STDOUT: %b.patt: %pattern_type.8c1 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.8c1 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %tuple.type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %tuple.type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -360,10 +360,10 @@ var a: array(1, 1); // CHECK:STDOUT: %t.var_patt: %pattern_type.fe8 = var_pattern %t.patt [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_34.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_34.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -393,21 +393,21 @@ var a: array(1, 1); // CHECK:STDOUT: %t.patt: %pattern_type.fe8 = ref_binding_pattern t [concrete = constants.%t.patt] // CHECK:STDOUT: %t.var_patt: %pattern_type.fe8 = var_pattern %t.patt [concrete = constants.%t.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc8_34: = bound_method %.loc8_34.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc8_34: init %empty_tuple.type = call %Destroy.Op.bound.loc8_34(%.loc8_34.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc8_3: = bound_method %t.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8_3: init %empty_tuple.type = call %Destroy.Op.bound.loc8_3(%t.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8_34: = bound_method %.loc8_34.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8_34: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8_34(%.loc8_34.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8_3: = bound_method %t.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8_3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8_3(%t.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_34.1(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_34.1(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_34.2(%self.param: ref %tuple.type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_34.2(%self.param: ref %tuple.type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/import.carbon b/toolchain/check/testdata/array/import.carbon index d3e20fe55531..e0d686272a5b 100644 --- a/toolchain/check/testdata/array/import.carbon +++ b/toolchain/check/testdata/array/import.carbon @@ -72,8 +72,8 @@ fn F() -> i32 { // CHECK:STDOUT: %Copy.WithSelf.Op.type.381: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc6_12.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc6_12.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -96,19 +96,19 @@ fn F() -> i32 { // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_15.2: = bound_method %.loc6_15.2, %specific_fn // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_15.2(%.loc6_15.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc6_12.2, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc6_12.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc6_12.2, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc6_12.2) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc6_12.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc6_12.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc6_12.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc6_12.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc6_12.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc6_12.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/index_not_literal.carbon b/toolchain/check/testdata/array/index_not_literal.carbon index afd9e3ca4f6a..f39a0651d5b8 100644 --- a/toolchain/check/testdata/array/index_not_literal.carbon +++ b/toolchain/check/testdata/array/index_not_literal.carbon @@ -95,9 +95,9 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.0c6, %int_2.295, %int_3.410) [concrete] // CHECK:STDOUT: %.981: ref %array_type = temporary invalid, %array [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc10_20.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.981, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc10_20.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.981, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -170,18 +170,18 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %.loc10_23.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc10_23.2: %i32 = converted %int_1.loc10_23, %.loc10_23.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %F.call: init %i32 = call %F.ref(%.loc10_20.15, %.loc10_23.2) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.981) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.981) // CHECK:STDOUT: return %F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_20.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_20.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_20.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_20.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_20.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_20.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/init_dependent_bound.carbon b/toolchain/check/testdata/array/init_dependent_bound.carbon index e2dd8d691e8c..6c0b08fbbed5 100644 --- a/toolchain/check/testdata/array/init_dependent_bound.carbon +++ b/toolchain/check/testdata/array/init_dependent_bound.carbon @@ -74,10 +74,10 @@ fn H() { G(3); } // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %array_type.1b3, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.a52: %Destroy.type = facet_value %array_type.1b3, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.a67: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.a52) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.a67: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.a52) [symbolic] // CHECK:STDOUT: %.1e5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.a67, %Destroy.facet.a52 [symbolic] // CHECK:STDOUT: %impl.elem0: %.1e5 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.a52) [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op.1(%Destroy.facet.a52) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %array_type.988: type = array_type %int_0, %C [concrete] // CHECK:STDOUT: %complete_type.e80: = complete_type_witness %array_type.988 [concrete] @@ -85,12 +85,12 @@ fn H() { G(3); } // CHECK:STDOUT: %arr.patt.c91: %pattern_type.6be = ref_binding_pattern arr [concrete] // CHECK:STDOUT: %arr.var_patt.9dd: %pattern_type.6be = var_pattern %arr.patt.c91 [concrete] // CHECK:STDOUT: %array.497: %array_type.988 = tuple_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9: = custom_witness (%Destroy.Op), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.396: %Destroy.type = facet_value %array_type.988, (%custom_witness.df9) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ccc: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.396) [concrete] -// CHECK:STDOUT: %.a02: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.ccc, %Destroy.facet.396 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc7 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4: = custom_witness (%Destroy.WithSelf.Op.403), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.a8f: %Destroy.type = facet_value %array_type.988, (%custom_witness.6c4) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.3eb: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.a8f) [concrete] +// CHECK:STDOUT: %.2c2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.3eb, %Destroy.facet.a8f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc4_15.2: type) { @@ -105,10 +105,10 @@ fn H() { G(3); } // CHECK:STDOUT: %array: @G.%array_type.loc7_29.2 (%array_type.1b3) = tuple_value () [symbolic = %array (constants.%array.ca4)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %array_type.loc7_29.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet.loc7_3.3: %Destroy.type = facet_value %array_type.loc7_29.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.a52)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc7_3.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.a67)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.loc7_3.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.a67)] // CHECK:STDOUT: %.loc7_3.4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc7_3.3 [symbolic = %.loc7_3.4 (constants.%.1e5)] // CHECK:STDOUT: %impl.elem0.loc7_3.2: @G.%.loc7_3.4 (%.1e5) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc7_3.3) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.WithSelf.Op.1(%Destroy.facet.loc7_3.3) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -133,14 +133,14 @@ fn H() { G(3); } // CHECK:STDOUT: %.loc7_3.2: %Destroy.type = converted constants.%array_type.1b3, %Destroy.facet.loc7_3.1 [symbolic = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.a52)] // CHECK:STDOUT: %Destroy.facet.loc7_3.2: %Destroy.type = facet_value constants.%array_type.1b3, (constants.%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.a52)] // CHECK:STDOUT: %.loc7_3.3: %Destroy.type = converted constants.%array_type.1b3, %Destroy.facet.loc7_3.2 [symbolic = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.a52)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.a52) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op.1(constants.%Destroy.facet.a52) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %arr.var, %specific_impl_fn.loc7_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%arr.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %array_type.988) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7(%self.param: ref %array_type.988) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { // CHECK:STDOUT: %T.patt.loc4_15.2 => constants.%T.patt @@ -158,12 +158,12 @@ fn H() { G(3); } // CHECK:STDOUT: %arr.patt.loc7_17.2 => constants.%arr.patt.c91 // CHECK:STDOUT: %arr.var_patt.loc7_3.2 => constants.%arr.var_patt.9dd // CHECK:STDOUT: %array => constants.%array.497 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9 -// CHECK:STDOUT: %Destroy.facet.loc7_3.3 => constants.%Destroy.facet.396 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ccc -// CHECK:STDOUT: %.loc7_3.4 => constants.%.a02 -// CHECK:STDOUT: %impl.elem0.loc7_3.2 => constants.%Destroy.Op -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2 => constants.%Destroy.Op +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4 +// CHECK:STDOUT: %Destroy.facet.loc7_3.3 => constants.%Destroy.facet.a8f +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.3eb +// CHECK:STDOUT: %.loc7_3.4 => constants.%.2c2 +// CHECK:STDOUT: %impl.elem0.loc7_3.2 => constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %specific_impl_fn.loc7_3.2 => constants.%Destroy.WithSelf.Op.403 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_init_template_dependent_bound.carbon @@ -190,7 +190,7 @@ fn H() { G(3); } // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%int_1, %int_2, %int_3.1ba) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Self.0e7: %Destroy.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self.0e7) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Self.0e7) [symbolic] // CHECK:STDOUT: %Destroy.WithSelf.Op.42b: %Destroy.WithSelf.Op.type.d3e = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.assoc_type: type = assoc_entity_type @Destroy [concrete] // CHECK:STDOUT: %assoc0.ae8: %Destroy.assoc_type = assoc_entity element0, imports.%Core.import_ref.918 [concrete] @@ -234,20 +234,20 @@ fn H() { G(3); } // CHECK:STDOUT: %inst.specific_inst.d8f: = inst_value [concrete] { // CHECK:STDOUT: %.ef0: ref %array_type.dc7 = specific_inst @G.%arr.var, @G(%int_3.410) // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.3: = custom_witness (%Destroy.Op.1a2547.3), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.9a9: %Destroy.type = facet_value %array_type.dc7, (%custom_witness.df9cc1.3) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.642: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.9a9) [concrete] -// CHECK:STDOUT: %.6cd: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.642, %Destroy.facet.9a9 [concrete] -// CHECK:STDOUT: %inst.splice_block.de7: = inst_value [concrete] { -// CHECK:STDOUT: %.d24: = splice_block %bound_method.6cc { -// CHECK:STDOUT: %impl.elem0.ef2: %.6cd = impl_witness_access %custom_witness.df9cc1.3, element0 [concrete = %Destroy.Op.1a2547.3] -// CHECK:STDOUT: %bound_method.6cc: = bound_method %.ef0, %impl.elem0.ef2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.3: = custom_witness (%Destroy.WithSelf.Op.403171.3), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.87b: %Destroy.type = facet_value %array_type.dc7, (%custom_witness.6c4ec3.3) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d31: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.87b) [concrete] +// CHECK:STDOUT: %.6e0: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.d31, %Destroy.facet.87b [concrete] +// CHECK:STDOUT: %inst.splice_block.370: = inst_value [concrete] { +// CHECK:STDOUT: %.9dc: = splice_block %bound_method.f1d { +// CHECK:STDOUT: %impl.elem0.6b3: %.6e0 = impl_witness_access %custom_witness.6c4ec3.3, element0 [concrete = %Destroy.WithSelf.Op.403171.3] +// CHECK:STDOUT: %bound_method.f1d: = bound_method %.ef0, %impl.elem0.6b3 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %inst.call: = inst_value [concrete] { -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %.d24(%.ef0) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %.9dc(%.ef0) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -308,14 +308,14 @@ fn H() { G(3); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type.dc7) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.3(%self.param: ref %array_type.dc7) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -341,7 +341,7 @@ fn H() { G(3); } // CHECK:STDOUT: %arr.var_patt.loc11_3.2 => constants.%arr.var_patt.c63 // CHECK:STDOUT: %.loc11_3.6 => constants.%inst.specific_inst.d8f // CHECK:STDOUT: %.loc11_3.7 => invalid -// CHECK:STDOUT: %.loc11_3.8 => constants.%inst.splice_block.de7 +// CHECK:STDOUT: %.loc11_3.8 => constants.%inst.splice_block.370 // CHECK:STDOUT: %.loc11_3.9 => // CHECK:STDOUT: %.loc11_3.10 => invalid // CHECK:STDOUT: %.loc11_3.11 => constants.%inst.call diff --git a/toolchain/check/testdata/as/basics.carbon b/toolchain/check/testdata/as/basics.carbon index 7f9d5ca37d46..7220095b569e 100644 --- a/toolchain/check/testdata/as/basics.carbon +++ b/toolchain/check/testdata/as/basics.carbon @@ -214,12 +214,12 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %tuple.type.359: type = tuple_type (%X, %X) [concrete] // CHECK:STDOUT: %pattern_type.3ee: type = pattern_type %tuple.type.359 [concrete] // CHECK:STDOUT: %a.patt: %pattern_type.3ee = value_binding_pattern a [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc13_40.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc13_40.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.3ee = ref_binding_pattern b [concrete] // CHECK:STDOUT: %b.var_patt: %pattern_type.3ee = var_pattern %b.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc20 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc20 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Let() { @@ -251,16 +251,16 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type.3ee = value_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc13_40: = bound_method %.loc13_40.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc13_40: init %empty_tuple.type = call %Destroy.Op.bound.loc13_40(%.loc13_40.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc13_32: = bound_method %.loc13_32.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc13_32: init %empty_tuple.type = call %Destroy.Op.bound.loc13_32(%.loc13_32.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc13_40: = bound_method %.loc13_40.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13_40: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc13_40(%.loc13_40.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc13_32: = bound_method %.loc13_32.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13_32: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc13_32(%.loc13_32.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_40.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_40.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_40.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_40.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -293,12 +293,12 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %b.patt: %pattern_type.3ee = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.3ee = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%b.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20(%self.param: ref %tuple.type.359) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20(%self.param: ref %tuple.type.359) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -318,8 +318,8 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %x.patt: %pattern_type.6cb = ref_binding_pattern x [concrete] // CHECK:STDOUT: %x.var_patt: %pattern_type.6cb = var_pattern %x.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc24_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc24_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Value(%n.param: %X) { @@ -365,14 +365,14 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %x.patt: %pattern_type.6cb = ref_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: %x.var_patt: %pattern_type.6cb = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/as/const.carbon b/toolchain/check/testdata/as/const.carbon index e2bce0572b91..f07e62b21193 100644 --- a/toolchain/check/testdata/as/const.carbon +++ b/toolchain/check/testdata/as/const.carbon @@ -112,8 +112,8 @@ fn Use() { // CHECK:STDOUT: %reference.var: ref %const = var_storage file.%reference.var_patt [concrete] // CHECK:STDOUT: %addr.daa: %ptr.faf = addr_of %reference.var [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.7f7 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc14_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc14_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { @@ -179,19 +179,19 @@ fn Use() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %b.patt: %pattern_type.7f7 = value_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %i.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%i.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.3(%self.param: ref %const) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.3(%self.param: ref %const) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -214,8 +214,8 @@ fn Use() { // CHECK:STDOUT: %i.patt: %pattern_type.6cb = ref_binding_pattern i [concrete] // CHECK:STDOUT: %i.var_patt: %pattern_type.6cb = var_pattern %i.patt [concrete] // CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc12_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { @@ -243,14 +243,14 @@ fn Use() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %i.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%i.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/as/maybe_unformed.carbon b/toolchain/check/testdata/as/maybe_unformed.carbon index 9361217f8bac..b224d42477ff 100644 --- a/toolchain/check/testdata/as/maybe_unformed.carbon +++ b/toolchain/check/testdata/as/maybe_unformed.carbon @@ -228,8 +228,8 @@ fn Use() { // CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] // CHECK:STDOUT: %v.patt: %pattern_type.009 = value_binding_pattern v [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc19_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc19_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -284,24 +284,24 @@ fn Use() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: %pattern_type.009 = value_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %i.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%i.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_3.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19_3.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_3.3(%self.param: ref %.f01) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19_3.3(%self.param: ref %.f01) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_3.4(%self.param: ref %MaybeUnformed.198) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19_3.4(%self.param: ref %MaybeUnformed.198) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/as/partial.carbon b/toolchain/check/testdata/as/partial.carbon index 6fdb7762a6bb..2dd2928a7033 100644 --- a/toolchain/check/testdata/as/partial.carbon +++ b/toolchain/check/testdata/as/partial.carbon @@ -126,8 +126,8 @@ fn Use() { // CHECK:STDOUT: %reference.var: ref %.d74 = var_storage file.%reference.var_patt [concrete] // CHECK:STDOUT: %addr.3a0: %ptr.44a = addr_of %reference.var [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.12c = value_binding_pattern b [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc14_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc14_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { @@ -193,14 +193,14 @@ fn Use() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %b.patt: %pattern_type.12c = value_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %i.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%i.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.2(%self.param: ref %.d74) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.2(%self.param: ref %.d74) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -226,8 +226,8 @@ fn Use() { // CHECK:STDOUT: %j.var_patt: %pattern_type.6cb = var_pattern %j.patt [concrete] // CHECK:STDOUT: %k.patt: %pattern_type.6cb = ref_binding_pattern k [concrete] // CHECK:STDOUT: %k.var_patt: %pattern_type.6cb = var_pattern %k.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc12_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { @@ -273,18 +273,18 @@ fn Use() { // CHECK:STDOUT: %k.patt: %pattern_type.6cb = ref_binding_pattern k [concrete = constants.%k.patt] // CHECK:STDOUT: %k.var_patt: %pattern_type.6cb = var_pattern %k.patt [concrete = constants.%k.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc12: = bound_method %k.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call %Destroy.Op.bound.loc12(%k.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %j.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%j.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %i.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%i.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc12: = bound_method %k.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc12: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc12(%k.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %j.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%j.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %i.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%i.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/as/var_init.carbon b/toolchain/check/testdata/as/var_init.carbon index 1fe90300a1be..5a226b8ba663 100644 --- a/toolchain/check/testdata/as/var_init.carbon +++ b/toolchain/check/testdata/as/var_init.carbon @@ -45,8 +45,8 @@ fn Convert(unused t: ()) { // CHECK:STDOUT: %x.var_patt: %pattern_type.6cb = var_pattern %x.patt [concrete] // CHECK:STDOUT: %.b8c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dd7, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.bound: = bound_method %empty_tuple, %empty_tuple.type.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc12_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert(%t.param: %empty_tuple.type) { @@ -67,14 +67,14 @@ fn Convert(unused t: ()) { // CHECK:STDOUT: %x.patt: %pattern_type.6cb = ref_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: %x.var_patt: %pattern_type.6cb = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon b/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon index 2bbfd7087087..12ce1f55fdc3 100644 --- a/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon +++ b/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon @@ -105,8 +105,8 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %empty_tuple.type [concrete] @@ -164,8 +164,8 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: %c.ref.loc20: ref %empty_tuple.type = name_ref c, %c // CHECK:STDOUT: %.loc20_10: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc20_11: init %empty_tuple.type = converted %c.ref.loc20, %.loc20_10 [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%c.var) // CHECK:STDOUT: return %.loc20_11 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -220,8 +220,8 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc17 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { @@ -242,15 +242,15 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: %empty_tuple.loc17: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc17_7.3: %empty_tuple.type = converted %C.call, %empty_tuple.loc17 [concrete = constants.%empty_tuple] // CHECK:STDOUT: -// CHECK:STDOUT: %Destroy.Op.bound.loc17: = bound_method %.loc17_7.2, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc17: init %empty_tuple.type = call %Destroy.Op.bound.loc17(%.loc17_7.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc17: = bound_method %.loc17_7.2, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc17: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc17(%.loc17_7.2) // CHECK:STDOUT: -// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %.loc13_7.2, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call %Destroy.Op.bound.loc13(%.loc13_7.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc13: = bound_method %.loc13_7.2, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc13(%.loc13_7.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc17(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- file_without_ranges.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/duplicate_name_same_line.carbon b/toolchain/check/testdata/basics/duplicate_name_same_line.carbon index f7fb245d892e..27c899168d5a 100644 --- a/toolchain/check/testdata/basics/duplicate_name_same_line.carbon +++ b/toolchain/check/testdata/basics/duplicate_name_same_line.carbon @@ -28,8 +28,8 @@ fn A() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %n.patt.785a0d.1: %pattern_type.cb1 = ref_binding_pattern n [concrete] // CHECK:STDOUT: %n.var_patt.961036.1: %pattern_type.cb1 = var_pattern %n.patt.785a0d.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc18 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: %n.patt.785a0d.2: %pattern_type.cb1 = ref_binding_pattern n [concrete] // CHECK:STDOUT: %n.var_patt.961036.2: %pattern_type.cb1 = var_pattern %n.patt.785a0d.2 [concrete] // CHECK:STDOUT: } @@ -53,8 +53,8 @@ fn A() { // CHECK:STDOUT: %n.patt.loc18_17: %pattern_type.cb1 = ref_binding_pattern n [concrete = constants.%n.patt.785a0d.1] // CHECK:STDOUT: %n.var_patt.loc18_5: %pattern_type.cb1 = var_pattern %n.patt.loc18_17 [concrete = constants.%n.var_patt.961036.1] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc18_5: = bound_method %n.var.loc18_5, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc18_5: init %empty_tuple.type = call %Destroy.Op.bound.loc18_5(%n.var.loc18_5) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18_5: = bound_method %n.var.loc18_5, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18_5: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18_5(%n.var.loc18_5) // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -72,13 +72,13 @@ fn A() { // CHECK:STDOUT: %n.patt.loc18_49: %pattern_type.cb1 = ref_binding_pattern n [concrete = constants.%n.patt.785a0d.2] // CHECK:STDOUT: %n.var_patt.loc18_37: %pattern_type.cb1 = var_pattern %n.patt.loc18_49 [concrete = constants.%n.var_patt.961036.2] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc18_37: = bound_method %n.var.loc18_37, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc18_37: init %empty_tuple.type = call %Destroy.Op.bound.loc18_37(%n.var.loc18_37) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18_37: = bound_method %n.var.loc18_37, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18_37: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18_37(%n.var.loc18_37) // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !if.done: // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/access/access_modifiers.carbon b/toolchain/check/testdata/class/access/access_modifiers.carbon index f14467435bc3..ce254ac0c1c7 100644 --- a/toolchain/check/testdata/class/access/access_modifiers.carbon +++ b/toolchain/check/testdata/class/access/access_modifiers.carbon @@ -193,8 +193,8 @@ class A { // CHECK:STDOUT: %Circle.val: %Circle = struct_value (%int_5.eef) [concrete] // CHECK:STDOUT: %circle.patt: %pattern_type.f70 = value_binding_pattern circle [concrete] // CHECK:STDOUT: %radius.patt: %pattern_type.6b6 = value_binding_pattern radius [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc20_36.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc20_36.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -259,24 +259,24 @@ class A { // CHECK:STDOUT: %SOME_INTERNAL_CONSTANT.ref: = name_ref SOME_INTERNAL_CONSTANT, [concrete = ] // CHECK:STDOUT: %circle.ref.loc53: %Circle = name_ref circle, %circle // CHECK:STDOUT: %SomeInternalFunction.ref: = name_ref SomeInternalFunction, [concrete = ] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc20_36.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc20_36.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc20_36.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc20_36.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_36.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_36.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_36.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_36.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_36.3(%self.param: ref %struct_type.radius.c2c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_36.3(%self.param: ref %struct_type.radius.c2c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_36.4(%self.param: ref %Circle) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_36.4(%self.param: ref %Circle) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/adapter/adapt_copy.carbon b/toolchain/check/testdata/class/adapter/adapt_copy.carbon index 2b46b9f254a7..812b7f6fecb4 100644 --- a/toolchain/check/testdata/class/adapter/adapt_copy.carbon +++ b/toolchain/check/testdata/class/adapter/adapt_copy.carbon @@ -188,8 +188,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %d.var_patt.b13: %pattern_type.3b9 = var_pattern %d.patt.467 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc16_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc16_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %UInt.type: type = generic_class_type @UInt [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] @@ -207,8 +207,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %u32.builtin: type = int_type unsigned, %int_32 [concrete] // CHECK:STDOUT: %d.patt.e01: %pattern_type.c42 = ref_binding_pattern d [concrete] // CHECK:STDOUT: %d.var_patt.d22: %pattern_type.c42 = var_pattern %d.patt.e01 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc35_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc35_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -296,19 +296,19 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: } // CHECK:STDOUT: %d.ref: ref %AdaptCopyable = name_ref d, %d // CHECK:STDOUT: %.loc24: %AdaptCopyable = acquire_value %d.ref -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%d.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.3(%self.param: ref %AdaptCopyable) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.3(%self.param: ref %AdaptCopyable) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -333,19 +333,19 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %d.ref: ref %tuple.type.28f = name_ref d, %d // CHECK:STDOUT: %tuple.elem0.loc43: ref %AdaptCopyable = tuple_access %d.ref, element0 // CHECK:STDOUT: %.loc43: %AdaptCopyable = acquire_value %tuple.elem0.loc43 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%d.var) // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_3.1(%self.param: ref %u32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_3.1(%self.param: ref %u32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_3.2(%self.param: ref %u32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_3.2(%self.param: ref %u32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_3.3(%self.param: ref %tuple.type.28f) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_3.3(%self.param: ref %tuple.type.28f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -386,8 +386,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet.1e1 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc9_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc9_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %UInt.type: type = generic_class_type @UInt [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] @@ -413,8 +413,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Copy.WithSelf.Op.type.94a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.e98) [concrete] // CHECK:STDOUT: %.4ed: type = fn_type_with_self_type %Copy.WithSelf.Op.type.94a, %Copy.facet.e98 [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.46f, @UInt.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc14_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc14_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -552,24 +552,24 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.7: init %tuple.type.e55 to %.loc10_11.3 = tuple_init (%.loc10_11.4, %.loc10_11.6) // CHECK:STDOUT: %.loc10_11.8: init %AdaptTuple = as_compatible %.loc10_11.7 // CHECK:STDOUT: %.loc10_11.9: init %AdaptTuple = converted %d.ref, %.loc10_11.8 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%d.var) // CHECK:STDOUT: return %.loc10_11.9 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %tuple.type.e55) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %tuple.type.e55) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.4(%self.param: ref %AdaptTuple) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.4(%self.param: ref %AdaptTuple) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -660,19 +660,19 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_10.11: init %u32 to %tuple.elem1.loc15_10.4 = in_place_init %UInt.as.Copy.impl.Op.call.loc15 // CHECK:STDOUT: %.loc15_10.12: init %tuple.type.e88 to %return.param = tuple_init (%.loc15_10.9, %.loc15_10.11) // CHECK:STDOUT: %.loc15_11: init %tuple.type.e88 = converted %d.ref, %.loc15_10.12 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%d.var) // CHECK:STDOUT: return %.loc15_11 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.1(%self.param: ref %u32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.1(%self.param: ref %u32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.2(%self.param: ref %u32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.2(%self.param: ref %u32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.3(%self.param: ref %tuple.type.e88) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.3(%self.param: ref %tuple.type.e88) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -697,8 +697,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %b.var_patt: %pattern_type.d14 = var_pattern %b.patt [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc20_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc20_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -770,19 +770,19 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: } // CHECK:STDOUT: %b.ref: ref %AdaptNoncopyable = name_ref b, %b // CHECK:STDOUT: %.loc28: %AdaptNoncopyable = acquire_value %b.ref -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%b.var) // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.2(%self.param: ref %Noncopyable) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.2(%self.param: ref %Noncopyable) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.3(%self.param: ref %AdaptNoncopyable) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.3(%self.param: ref %AdaptNoncopyable) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -826,8 +826,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc23_3.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc23_3.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -930,31 +930,31 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc34_11.4: init %i32 to %tuple.elem0.loc34_11.2 = in_place_init %Int.as.Copy.impl.Op.call.loc34 // CHECK:STDOUT: %tuple.elem1.loc34: ref %Noncopyable = tuple_access %.loc34_11.1, element1 // CHECK:STDOUT: %.loc34_11.5: %Noncopyable = acquire_value %tuple.elem1.loc34 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%b.var) // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.3(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.3(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.4(%self.param: ref %Noncopyable) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.4(%self.param: ref %Noncopyable) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.5(%self.param: ref %tuple.type.227) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.5(%self.param: ref %tuple.type.227) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.6(%self.param: ref %AdaptNoncopyableIndirect) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.6(%self.param: ref %AdaptNoncopyableIndirect) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -993,8 +993,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet.1e1 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc9_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc9_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %UInt.type: type = generic_class_type @UInt [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] @@ -1021,8 +1021,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Copy.WithSelf.Op.type.94a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.e98) [concrete] // CHECK:STDOUT: %.4ed: type = fn_type_with_self_type %Copy.WithSelf.Op.type.94a, %Copy.facet.e98 [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.46f, @UInt.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc14_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc14_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1159,24 +1159,24 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.11: init %struct_type.e.f to %.loc10_11.4 = struct_init (%.loc10_11.6, %.loc10_11.10) // CHECK:STDOUT: %.loc10_11.12: init %AdaptStruct = as_compatible %.loc10_11.11 // CHECK:STDOUT: %.loc10_11.13: init %AdaptStruct = converted %h.ref, %.loc10_11.12 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %h.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%h.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %h.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%h.var) // CHECK:STDOUT: return %.loc10_11.13 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %struct_type.e.f) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %struct_type.e.f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.4(%self.param: ref %AdaptStruct) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.4(%self.param: ref %AdaptStruct) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1267,19 +1267,19 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_10.15: init %u32 to %tuple.elem1.loc15_10.2 = in_place_init %UInt.as.Copy.impl.Op.call.loc15 // CHECK:STDOUT: %.loc15_10.16: init %tuple.type.e00 to %return.param = tuple_init (%.loc15_10.13, %.loc15_10.15) // CHECK:STDOUT: %.loc15_11: init %tuple.type.e00 = converted %d.ref, %.loc15_10.16 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%d.var) // CHECK:STDOUT: return %.loc15_11 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.1(%self.param: ref %u32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.1(%self.param: ref %u32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.2(%self.param: ref %u32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.2(%self.param: ref %u32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.3(%self.param: ref %tuple.type.e00) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_3.3(%self.param: ref %tuple.type.e00) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/destroy_calls.carbon b/toolchain/check/testdata/class/destroy_calls.carbon index 16cc03628388..3ef87f563926 100644 --- a/toolchain/check/testdata/class/destroy_calls.carbon +++ b/toolchain/check/testdata/class/destroy_calls.carbon @@ -122,12 +122,12 @@ fn G() { F({}); } // CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete] // CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc12_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc10 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -169,28 +169,28 @@ fn G() { F({}); } // CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt] // CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc12: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call %Destroy.Op.bound.loc12(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %a.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc12: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc12: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc12(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11(%self.param: ref %B) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11(%self.param: ref %B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -219,12 +219,12 @@ fn G() { F({}); } // CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete] // CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc13_5.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc13_5.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc10 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -270,31 +270,31 @@ fn G() { F({}); } // CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt] // CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call %Destroy.Op.bound.loc13(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc13: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc13(%c.var) // CHECK:STDOUT: br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.else: -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %a.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_5.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_5.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_5.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_5.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11(%self.param: ref %B) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11(%self.param: ref %B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -315,12 +315,12 @@ fn G() { F({}); } // CHECK:STDOUT: %C.Make: %C.Make.type = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_10.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc12 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_10.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc12 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -334,38 +334,38 @@ fn G() { F({}); } // CHECK:STDOUT: %.loc10_10.1: ref %A = temporary_storage // CHECK:STDOUT: %A.Make.call: init %A to %.loc10_10.1 = call %Make.ref.loc10() // CHECK:STDOUT: %.loc10_10.2: ref %A = temporary %.loc10_10.1, %A.Make.call -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %.loc10_10.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%.loc10_10.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %.loc10_10.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%.loc10_10.2) // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %Make.ref.loc11: %B.Make.type = name_ref Make, @B.%B.Make.decl [concrete = constants.%B.Make] // CHECK:STDOUT: %.loc11_10.1: ref %B = temporary_storage // CHECK:STDOUT: %B.Make.call: init %B to %.loc11_10.1 = call %Make.ref.loc11() // CHECK:STDOUT: %.loc11_10.2: ref %B = temporary %.loc11_10.1, %B.Make.call -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_10.2, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_10.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %.loc11_10.2, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%.loc11_10.2) // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Make.ref.loc12: %C.Make.type = name_ref Make, @C.%C.Make.decl [concrete = constants.%C.Make] // CHECK:STDOUT: %.loc12_10.1: ref %C = temporary_storage // CHECK:STDOUT: %C.Make.call: init %C to %.loc12_10.1 = call %Make.ref.loc12() // CHECK:STDOUT: %.loc12_10.2: ref %C = temporary %.loc12_10.1, %C.Make.call -// CHECK:STDOUT: %Destroy.Op.bound.loc12: = bound_method %.loc12_10.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call %Destroy.Op.bound.loc12(%.loc12_10.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc12: = bound_method %.loc12_10.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc12: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc12(%.loc12_10.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_10.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_10.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_10.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_10.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11(%self.param: ref %B) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11(%self.param: ref %B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -386,8 +386,8 @@ fn G() { F({}); } // CHECK:STDOUT: %a.var_patt: %pattern_type.6fa = var_pattern %a.patt [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %D.val: %D.dee = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc9_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -411,14 +411,14 @@ fn G() { F({}); } // CHECK:STDOUT: %a.patt: %pattern_type.6fa = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.6fa = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %D.dee) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %D.dee) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -448,21 +448,21 @@ fn G() { F({}); } // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.1d0, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.19f: %Destroy.type = facet_value %C.1d0, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.fc4: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.19f) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.fc4: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.19f) [symbolic] // CHECK:STDOUT: %.cb3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.fc4, %Destroy.facet.19f [symbolic] // CHECK:STDOUT: %impl.elem0: %.cb3 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.19f) [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op.1(%Destroy.facet.19f) [symbolic] // CHECK:STDOUT: %C.d8e: type = class_type @C, @C(%empty_struct_type) [concrete] // CHECK:STDOUT: %pattern_type.2fd: type = pattern_type %C.d8e [concrete] // CHECK:STDOUT: %v.patt.0e7: %pattern_type.2fd = ref_binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt.259: %pattern_type.2fd = var_pattern %v.patt.0e7 [concrete] // CHECK:STDOUT: %C.val.58e: %C.d8e = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.2: = custom_witness (%Destroy.Op.1a2547.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.da3: %Destroy.type = facet_value %C.d8e, (%custom_witness.df9cc1.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.294: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.da3) [concrete] -// CHECK:STDOUT: %.98c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.294, %Destroy.facet.da3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc7_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.2: = custom_witness (%Destroy.WithSelf.Op.403171.2), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.492: %Destroy.type = facet_value %C.d8e, (%custom_witness.6c4ec3.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e51: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.492) [concrete] +// CHECK:STDOUT: %.441: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e51, %Destroy.facet.492 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -490,10 +490,10 @@ fn G() { F({}); } // CHECK:STDOUT: %C.val: @F.%C.loc7_20.2 (%C.1d0) = struct_value () [symbolic = %C.val (constants.%C.val.d4f)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.loc7_20.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet.loc7_3.3: %Destroy.type = facet_value %C.loc7_20.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.19f)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc7_3.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.fc4)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.loc7_3.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.fc4)] // CHECK:STDOUT: %.loc7_3.4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc7_3.3 [symbolic = %.loc7_3.4 (constants.%.cb3)] // CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3.4 (%.cb3) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc7_3.3) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.WithSelf.Op.1(%Destroy.facet.loc7_3.3) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -518,16 +518,16 @@ fn G() { F({}); } // CHECK:STDOUT: %.loc7_3.2: %Destroy.type = converted constants.%C.1d0, %Destroy.facet.loc7_3.1 [symbolic = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.19f)] // CHECK:STDOUT: %Destroy.facet.loc7_3.2: %Destroy.type = facet_value constants.%C.1d0, (constants.%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.19f)] // CHECK:STDOUT: %.loc7_3.3: %Destroy.type = converted constants.%C.1d0, %Destroy.facet.loc7_3.2 [symbolic = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.19f)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.19f) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op.1(constants.%Destroy.facet.19f) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_impl_fn.loc7_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%v.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.2(%self.param: ref %C.d8e) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.2(%self.param: ref %C.d8e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -548,12 +548,12 @@ fn G() { F({}); } // CHECK:STDOUT: %v.patt.loc7_15.2 => constants.%v.patt.0e7 // CHECK:STDOUT: %v.var_patt.loc7_3.2 => constants.%v.var_patt.259 // CHECK:STDOUT: %C.val => constants.%C.val.58e -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.2 -// CHECK:STDOUT: %Destroy.facet.loc7_3.3 => constants.%Destroy.facet.da3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.294 -// CHECK:STDOUT: %.loc7_3.4 => constants.%.98c -// CHECK:STDOUT: %impl.elem0.loc7_3.2 => constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2 => constants.%Destroy.Op.1a2547.2 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.2 +// CHECK:STDOUT: %Destroy.facet.loc7_3.3 => constants.%Destroy.facet.492 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e51 +// CHECK:STDOUT: %.loc7_3.4 => constants.%.441 +// CHECK:STDOUT: %impl.elem0.loc7_3.2 => constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %specific_impl_fn.loc7_3.2 => constants.%Destroy.WithSelf.Op.403171.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- generic_use_inside_template.carbon @@ -594,7 +594,7 @@ fn G() { F({}); } // CHECK:STDOUT: %.817: %.53f = splice_inst @F.%.loc7_3.31 [template] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Self.0e7: %Destroy.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self.0e7) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Self.0e7) [symbolic] // CHECK:STDOUT: %Destroy.WithSelf.Op.42b: %Destroy.WithSelf.Op.type.d3e = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.assoc_type: type = assoc_entity_type @Destroy [concrete] // CHECK:STDOUT: %assoc0.ae8: %Destroy.assoc_type = assoc_entity element0, imports.%Core.import_ref.918 [concrete] @@ -635,20 +635,20 @@ fn G() { F({}); } // CHECK:STDOUT: %inst.specific_inst.2e8: = inst_value [concrete] { // CHECK:STDOUT: %.d94: ref %C.d8efcc.1 = specific_inst @F.%v.var, @F(%empty_struct_type) // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.2: = custom_witness (%Destroy.Op.1a2547.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.da3: %Destroy.type = facet_value %C.d8efcc.1, (%custom_witness.df9cc1.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.294: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.da3) [concrete] -// CHECK:STDOUT: %.98c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.294, %Destroy.facet.da3 [concrete] -// CHECK:STDOUT: %inst.splice_block.5e8: = inst_value [concrete] { -// CHECK:STDOUT: %.b36: = splice_block %bound_method { -// CHECK:STDOUT: %impl.elem0: %.98c = impl_witness_access %custom_witness.df9cc1.2, element0 [concrete = %Destroy.Op.1a2547.2] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc7_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.2: = custom_witness (%Destroy.WithSelf.Op.403171.2), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.492: %Destroy.type = facet_value %C.d8efcc.1, (%custom_witness.6c4ec3.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e51: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.492) [concrete] +// CHECK:STDOUT: %.441: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e51, %Destroy.facet.492 [concrete] +// CHECK:STDOUT: %inst.splice_block.8dd: = inst_value [concrete] { +// CHECK:STDOUT: %.46a: = splice_block %bound_method { +// CHECK:STDOUT: %impl.elem0: %.441 = impl_witness_access %custom_witness.6c4ec3.2, element0 [concrete = %Destroy.WithSelf.Op.403171.2] // CHECK:STDOUT: %bound_method: = bound_method %.d94, %impl.elem0 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %inst.call: = inst_value [concrete] { -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %.b36(%.d94) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %.46a(%.d94) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -747,9 +747,9 @@ fn G() { F({}); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.2(%self.param: ref %C.d8efcc.1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.2(%self.param: ref %C.d8efcc.1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -793,7 +793,7 @@ fn G() { F({}); } // CHECK:STDOUT: %.loc7_3.32 => constants.%.e51 // CHECK:STDOUT: %.loc7_3.33 => constants.%inst.specific_inst.2e8 // CHECK:STDOUT: %.loc7_3.34 => invalid -// CHECK:STDOUT: %.loc7_3.35 => constants.%inst.splice_block.5e8 +// CHECK:STDOUT: %.loc7_3.35 => constants.%inst.splice_block.8dd // CHECK:STDOUT: %.loc7_3.36 => // CHECK:STDOUT: %.loc7_3.37 => invalid // CHECK:STDOUT: %.loc7_3.38 => constants.%inst.call diff --git a/toolchain/check/testdata/class/field/field_access.carbon b/toolchain/check/testdata/class/field/field_access.carbon index 330f57808240..767637e4a355 100644 --- a/toolchain/check/testdata/class/field/field_access.carbon +++ b/toolchain/check/testdata/class/field/field_access.carbon @@ -90,10 +90,10 @@ fn Run() { // CHECK:STDOUT: %ck.patt: %pattern_type.6b6 = ref_binding_pattern ck [concrete] // CHECK:STDOUT: %ck.var_patt: %pattern_type.6b6 = var_pattern %ck.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc25_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc21_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc25_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc21_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -219,28 +219,28 @@ fn Run() { // CHECK:STDOUT: %ck.patt: %pattern_type.6b6 = ref_binding_pattern ck [concrete = constants.%ck.patt] // CHECK:STDOUT: %ck.var_patt: %pattern_type.6b6 = var_pattern %ck.patt [concrete = constants.%ck.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc25: = bound_method %ck.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc25: init %empty_tuple.type = call %Destroy.Op.bound.loc25(%ck.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %cj.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc24: init %empty_tuple.type = call %Destroy.Op.bound.loc24(%cj.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc21: = bound_method %c.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc21: init %empty_tuple.type = call %Destroy.Op.bound.loc21(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc25: = bound_method %ck.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc25: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc25(%ck.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc24: = bound_method %cj.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc24(%cj.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc21: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc21: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc21(%c.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21_3.1(%self.param: ref %struct_type.j.k) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc21_3.1(%self.param: ref %struct_type.j.k) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21_3.2(%self.param: ref %Class) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc21_3.2(%self.param: ref %Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/field/field_access_in_value.carbon b/toolchain/check/testdata/class/field/field_access_in_value.carbon index 47b243f2b070..533a7399ef5f 100644 --- a/toolchain/check/testdata/class/field/field_access_in_value.carbon +++ b/toolchain/check/testdata/class/field/field_access_in_value.carbon @@ -92,10 +92,10 @@ fn Test() { // CHECK:STDOUT: %ck.patt: %pattern_type.6b6 = ref_binding_pattern ck [concrete] // CHECK:STDOUT: %ck.var_patt: %pattern_type.6b6 = var_pattern %ck.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc26_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc21_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc26_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc21_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -228,28 +228,28 @@ fn Test() { // CHECK:STDOUT: %ck.patt: %pattern_type.6b6 = ref_binding_pattern ck [concrete = constants.%ck.patt] // CHECK:STDOUT: %ck.var_patt: %pattern_type.6b6 = var_pattern %ck.patt [concrete = constants.%ck.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc26: = bound_method %ck.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc26: init %empty_tuple.type = call %Destroy.Op.bound.loc26(%ck.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc25: = bound_method %cj.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc25: init %empty_tuple.type = call %Destroy.Op.bound.loc25(%cj.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc21: = bound_method %cv.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc21: init %empty_tuple.type = call %Destroy.Op.bound.loc21(%cv.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc26: = bound_method %ck.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc26: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc26(%ck.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc25: = bound_method %cj.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc25: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc25(%cj.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc21: = bound_method %cv.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc21: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc21(%cv.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21_3.1(%self.param: ref %struct_type.j.k) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc21_3.1(%self.param: ref %struct_type.j.k) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21_3.2(%self.param: ref %Class) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc21_3.2(%self.param: ref %Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index a385c731eb2b..2e609899444c 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -520,8 +520,8 @@ class Class(U: type) { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %CompleteClass.F.specific_fn: = specific_function %CompleteClass.F.623, @CompleteClass.F(%i32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc6_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc6_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %UseField.type: type = fn_type @UseField [concrete] // CHECK:STDOUT: %UseField: %UseField.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] @@ -635,8 +635,8 @@ class Class(U: type) { // CHECK:STDOUT: %F.ref.loc7: %CompleteClass.F.type.dac = name_ref F, %.loc7 [concrete = constants.%CompleteClass.F.623] // CHECK:STDOUT: %CompleteClass.F.specific_fn: = specific_function %F.ref.loc7, @CompleteClass.F(constants.%i32) [concrete = constants.%CompleteClass.F.specific_fn] // CHECK:STDOUT: %CompleteClass.F.call: init %i32 = call %CompleteClass.F.specific_fn() -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return %CompleteClass.F.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -648,19 +648,19 @@ class Class(U: type) { // CHECK:STDOUT: // CHECK:STDOUT: fn @F [from "foo.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc6_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc6_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc6_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc6_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc6_3.3(%self.param: ref %struct_type.n) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc6_3.3(%self.param: ref %struct_type.n) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc6_3.4(%self.param: ref %CompleteClass.d55) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc6_3.4(%self.param: ref %CompleteClass.d55) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -691,8 +691,8 @@ class Class(U: type) { // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc12_11.2: = bound_method %.loc12_11.2, %specific_fn // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc12_11.2(%.loc12_11.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -763,8 +763,8 @@ class Class(U: type) { // CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc13_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc13_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -841,8 +841,8 @@ class Class(U: type) { // CHECK:STDOUT: %v.patt: %pattern_type.ff3 = ref_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: %v.var_patt: %pattern_type.ff3 = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -854,19 +854,19 @@ class Class(U: type) { // CHECK:STDOUT: // CHECK:STDOUT: fn @F [from "foo.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.3(%self.param: ref %struct_type.n) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.3(%self.param: ref %struct_type.n) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.4(%self.param: ref %CompleteClass.22b) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.4(%self.param: ref %CompleteClass.22b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index c8e4df660707..db501ac7c8c1 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -100,10 +100,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %specific_impl_fn.be5: = specific_impl_function %impl.elem0.170, @Copy.WithSelf.Op(%Copy.facet.3f0) [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.62e: = lookup_impl_witness %Class.55b, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.25e: %Destroy.type = facet_value %Class.55b, (%Destroy.lookup_impl_witness.62e) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d76: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.25e) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d76: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.25e) [symbolic] // CHECK:STDOUT: %.0da: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.d76, %Destroy.facet.25e [symbolic] // CHECK:STDOUT: %impl.elem0.730: %.0da = impl_witness_access %Destroy.lookup_impl_witness.62e, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.fa9: = specific_impl_function %impl.elem0.730, @Destroy.WithSelf.Op(%Destroy.facet.25e) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.fa9: = specific_impl_function %impl.elem0.730, @Destroy.WithSelf.Op.1(%Destroy.facet.25e) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] @@ -118,16 +118,16 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %InitFromStructSpecific.type: type = fn_type @InitFromStructSpecific [concrete] // CHECK:STDOUT: %InitFromStructSpecific: %InitFromStructSpecific.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc15_19.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.2: = custom_witness (%Destroy.Op.1a2547.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.d07: %Destroy.type = facet_value %i32, (%custom_witness.df9cc1.2) [concrete] -// CHECK:STDOUT: %Class.a32: type = class_type @Class, @Class(%Destroy.facet.d07) [concrete] -// CHECK:STDOUT: %Class.elem.8f3: type = unbound_element_type %Class.a32, %i32 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc15_19.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.2: = custom_witness (%Destroy.WithSelf.Op.403171.2), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.6de: %Destroy.type = facet_value %i32, (%custom_witness.6c4ec3.2) [concrete] +// CHECK:STDOUT: %Class.a90: type = class_type @Class, @Class(%Destroy.facet.6de) [concrete] +// CHECK:STDOUT: %Class.elem.2e7: type = unbound_element_type %Class.a90, %i32 [concrete] // CHECK:STDOUT: %struct_type.k.e7c: type = struct_type {.k: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.82c: type = pattern_type %Class.a32 [concrete] -// CHECK:STDOUT: %v.patt.675: %pattern_type.82c = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt.68c: %pattern_type.82c = var_pattern %v.patt.675 [concrete] +// CHECK:STDOUT: %pattern_type.d45: type = pattern_type %Class.a90 [concrete] +// CHECK:STDOUT: %v.patt.130: %pattern_type.d45 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt.9b5: %pattern_type.d45 = var_pattern %v.patt.130 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.ac8: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.5e0: %Int.as.Copy.impl.Op.type.ac8 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.b51: = impl_witness imports.%Copy.impl_witness_table.8d2, @Int.as.Copy.impl(%int_32) [concrete] @@ -137,8 +137,8 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Copy.WithSelf.Op.type.381: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.1e1) [concrete] // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet.1e1 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc15_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc15_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -241,10 +241,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc10_17.2, %T.as_type.loc9_66.1 [symbolic = %Class.elem (constants.%Class.elem.b97)] // CHECK:STDOUT: %Destroy.lookup_impl_witness.loc10_3: = lookup_impl_witness %Class.loc10_17.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc10_3 (constants.%Destroy.lookup_impl_witness.62e)] // CHECK:STDOUT: %Destroy.facet.loc10_3.3: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.lookup_impl_witness.loc10_3) [symbolic = %Destroy.facet.loc10_3.3 (constants.%Destroy.facet.25e)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc10_3.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d76)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.loc10_3.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d76)] // CHECK:STDOUT: %.loc10_3.4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc10_3.3 [symbolic = %.loc10_3.4 (constants.%.0da)] // CHECK:STDOUT: %impl.elem0.loc10_3.2: @InitFromStructGeneric.%.loc10_3.4 (%.0da) = impl_witness_access %Destroy.lookup_impl_witness.loc10_3, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.730)] -// CHECK:STDOUT: %specific_impl_fn.loc10_3.2: = specific_impl_function %impl.elem0.loc10_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc10_3.3) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.fa9)] +// CHECK:STDOUT: %specific_impl_fn.loc10_3.2: = specific_impl_function %impl.elem0.loc10_3.2, @Destroy.WithSelf.Op.1(%Destroy.facet.loc10_3.3) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.fa9)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.as_type.loc9_66.1 (%T.as_type.74b)) -> out %return.param: @InitFromStructGeneric.%T.as_type.loc9_66.1 (%T.as_type.74b) { // CHECK:STDOUT: !entry: @@ -298,7 +298,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %.loc10_3.2: %Destroy.type = converted constants.%Class.55b, %Destroy.facet.loc10_3.1 [symbolic = %Destroy.facet.loc10_3.3 (constants.%Destroy.facet.25e)] // CHECK:STDOUT: %Destroy.facet.loc10_3.2: %Destroy.type = facet_value constants.%Class.55b, (constants.%Destroy.lookup_impl_witness.62e) [symbolic = %Destroy.facet.loc10_3.3 (constants.%Destroy.facet.25e)] // CHECK:STDOUT: %.loc10_3.3: %Destroy.type = converted constants.%Class.55b, %Destroy.facet.loc10_3.2 [symbolic = %Destroy.facet.loc10_3.3 (constants.%Destroy.facet.25e)] -// CHECK:STDOUT: %specific_impl_fn.loc10_3.1: = specific_impl_function %impl.elem0.loc10_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.25e) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.fa9)] +// CHECK:STDOUT: %specific_impl_fn.loc10_3.1: = specific_impl_function %impl.elem0.loc10_3.1, @Destroy.WithSelf.Op.1(constants.%Destroy.facet.25e) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.fa9)] // CHECK:STDOUT: %bound_method.loc10_3.2: = bound_method %v.var, %specific_impl_fn.loc10_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc10_3.2(%v.var) // CHECK:STDOUT: return %Copy.WithSelf.Op.call.loc11 to %return.param @@ -307,7 +307,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @InitFromStructSpecific(%x.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %v.var: ref %Class.a32 = var_storage %v.var_patt +// CHECK:STDOUT: %v.var: ref %Class.a90 = var_storage %v.var_patt // CHECK:STDOUT: %x.ref: %i32 = name_ref x, %x // CHECK:STDOUT: %.loc15_30.1: %struct_type.k.e7c = struct_literal (%x.ref) // CHECK:STDOUT: %impl.elem0.loc15: %.737 = impl_witness_access constants.%Copy.impl_witness.b51, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] @@ -317,23 +317,23 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc15: init %i32 = call %bound_method.loc15_29.2(%x.ref) // CHECK:STDOUT: %.loc15_30.2: ref %i32 = class_element_access %v.var, element0 // CHECK:STDOUT: %.loc15_30.3: init %i32 to %.loc15_30.2 = in_place_init %Int.as.Copy.impl.Op.call.loc15 -// CHECK:STDOUT: %.loc15_30.4: init %Class.a32 to %v.var = class_init (%.loc15_30.3) -// CHECK:STDOUT: %.loc15_3: init %Class.a32 = converted %.loc15_30.1, %.loc15_30.4 +// CHECK:STDOUT: %.loc15_30.4: init %Class.a90 to %v.var = class_init (%.loc15_30.3) +// CHECK:STDOUT: %.loc15_3: init %Class.a90 = converted %.loc15_30.1, %.loc15_30.4 // CHECK:STDOUT: assign %v.var, %.loc15_3 -// CHECK:STDOUT: %.loc15_19.1: type = splice_block %Class [concrete = constants.%Class.a32] { +// CHECK:STDOUT: %.loc15_19.1: type = splice_block %Class [concrete = constants.%Class.a90] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %i32.loc15, (constants.%custom_witness.df9cc1.2) [concrete = constants.%Destroy.facet.d07] -// CHECK:STDOUT: %.loc15_19.2: %Destroy.type = converted %i32.loc15, %Destroy.facet [concrete = constants.%Destroy.facet.d07] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%Destroy.facet.d07) [concrete = constants.%Class.a32] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %i32.loc15, (constants.%custom_witness.6c4ec3.2) [concrete = constants.%Destroy.facet.6de] +// CHECK:STDOUT: %.loc15_19.2: %Destroy.type = converted %i32.loc15, %Destroy.facet [concrete = constants.%Destroy.facet.6de] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%Destroy.facet.6de) [concrete = constants.%Class.a90] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %Class.a32 = wrapper_binding v, %v.var +// CHECK:STDOUT: %v: ref %Class.a90 = wrapper_binding v, %v.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.82c = ref_binding_pattern v [concrete = constants.%v.patt.675] -// CHECK:STDOUT: %v.var_patt: %pattern_type.82c = var_pattern %v.patt [concrete = constants.%v.var_patt.68c] +// CHECK:STDOUT: %v.patt: %pattern_type.d45 = ref_binding_pattern v [concrete = constants.%v.patt.130] +// CHECK:STDOUT: %v.var_patt: %pattern_type.d45 = var_pattern %v.patt [concrete = constants.%v.var_patt.9b5] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.ref: ref %Class.a32 = name_ref v, %v -// CHECK:STDOUT: %k.ref: %Class.elem.8f3 = name_ref k, @Class.%field_decl [concrete = @Class.%field_decl] +// CHECK:STDOUT: %v.ref: ref %Class.a90 = name_ref v, %v +// CHECK:STDOUT: %k.ref: %Class.elem.2e7 = name_ref k, @Class.%field_decl [concrete = @Class.%field_decl] // CHECK:STDOUT: %.loc16_11.1: ref %i32 = class_element_access %v.ref, element0 // CHECK:STDOUT: %.loc16_11.2: %i32 = acquire_value %.loc16_11.1 // CHECK:STDOUT: %impl.elem0.loc16: %.737 = impl_witness_access constants.%Copy.impl_witness.b51, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] @@ -341,24 +341,24 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_11.2: = bound_method %.loc16_11.2, %specific_fn.loc16 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc16: init %i32 = call %bound_method.loc16_11.2(%.loc16_11.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_19.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_19.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_19.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_19.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.1(%self.param: ref %struct_type.k.e7c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.1(%self.param: ref %struct_type.k.e7c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.2(%self.param: ref %Class.a32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.2(%self.param: ref %Class.a90) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/member_type.carbon b/toolchain/check/testdata/class/generic/member_type.carbon index 9731448c1204..e9ac3063090a 100644 --- a/toolchain/check/testdata/class/generic/member_type.carbon +++ b/toolchain/check/testdata/class/generic/member_type.carbon @@ -151,8 +151,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet.1e1 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc13_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc13_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -361,24 +361,24 @@ fn Test() -> i32 { // CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_11.2: = bound_method %.loc14_11.2, %specific_fn.loc14 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc14_11.2(%.loc14_11.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%c.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.3(%self.param: ref %struct_type.n.9ed) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.3(%self.param: ref %struct_type.n.9ed) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.4(%self.param: ref %Inner.84a) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.4(%self.param: ref %Inner.84a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -561,8 +561,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %self.patt.2f9: %pattern_type.9d0 = wrapper_binding_pattern self, %self.param_patt.edf [concrete] // CHECK:STDOUT: %C.as.Inner.impl.F.specific_fn: = specific_function %C.as.Inner.impl.F.e77, @C.as.Inner.impl.F(%i32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc23_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -875,14 +875,14 @@ fn Test() -> i32 { // CHECK:STDOUT: %bound_method.loc24_33: = bound_method %c.ref, %specific_fn // CHECK:STDOUT: %.loc24_10: %C.b7f = acquire_value %c.ref // CHECK:STDOUT: %C.as.Inner.impl.F.call: init %i32 = call %bound_method.loc24_33(%.loc24_10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%c.var) // CHECK:STDOUT: return %C.as.Inner.impl.F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.2(%self.param: ref %C.b7f) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.2(%self.param: ref %C.b7f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/method_deduce.carbon b/toolchain/check/testdata/class/generic/method_deduce.carbon index 39c27b601f37..ba6a1b1465e0 100644 --- a/toolchain/check/testdata/class/generic/method_deduce.carbon +++ b/toolchain/check/testdata/class/generic/method_deduce.carbon @@ -117,9 +117,9 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A { // CHECK:STDOUT: %A.val: %A = struct_value () [concrete] // CHECK:STDOUT: %.367: ref %A = temporary invalid, %A.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc29_25.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.367, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc29_25.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.367, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: %.cbf: Core.Form = init_form %A [concrete] // CHECK:STDOUT: %return.param_patt.f0c: %pattern_type.9ef = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt.a6d: %pattern_type.9ef = return_slot_pattern %return.param_patt.f0c, %A [concrete] @@ -452,13 +452,13 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A { // CHECK:STDOUT: %.loc29_25.5: ref %A = temporary %.loc29_25.2, %.loc29_25.4 [concrete = constants.%.367] // CHECK:STDOUT: %.loc29_25.6: %A = acquire_value %.loc29_25.5 [concrete = constants.%A.val] // CHECK:STDOUT: %Class.GetNoDeduce.call: init %tuple.type.1e7 to %.loc28_62.1 = call %Class.GetNoDeduce.specific_fn(%.loc29_25.6) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.367) // CHECK:STDOUT: return %Class.GetNoDeduce.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc29_25.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc29_25.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc29_25.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc29_25.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/self.carbon b/toolchain/check/testdata/class/generic/self.carbon index 719d66d90705..f57ae7d0cb95 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -60,10 +60,10 @@ class Class(T: type) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Class, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.86d: %Destroy.type = facet_value %Class, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.297: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.86d) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.297: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.86d) [symbolic] // CHECK:STDOUT: %.73f: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.297, %Destroy.facet.86d [symbolic] // CHECK:STDOUT: %impl.elem0: %.73f = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.86d) [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op.1(%Destroy.facet.86d) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -200,10 +200,10 @@ class Class(T: type) { // CHECK:STDOUT: %Class.MakeClass.specific_fn.loc22_26.2: = specific_function %Class.MakeClass, @Class.MakeClass(%T) [symbolic = %Class.MakeClass.specific_fn.loc22_26.2 (constants.%Class.MakeClass.specific_fn)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Class.loc21_26.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet.loc22_5.3: %Destroy.type = facet_value %Class.loc21_26.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc22_5.3 (constants.%Destroy.facet.86d)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc22_5.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.297)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.loc22_5.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.297)] // CHECK:STDOUT: %.loc22_5.4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc22_5.3 [symbolic = %.loc22_5.4 (constants.%.73f)] // CHECK:STDOUT: %impl.elem0.loc22_5.2: @Class.F.%.loc22_5.4 (%.73f) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc22_5.2: = specific_impl_function %impl.elem0.loc22_5.2, @Destroy.WithSelf.Op(%Destroy.facet.loc22_5.3) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc22_5.2: = specific_impl_function %impl.elem0.loc22_5.2, @Destroy.WithSelf.Op.1(%Destroy.facet.loc22_5.3) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -246,7 +246,7 @@ class Class(T: type) { // CHECK:STDOUT: %.loc22_5.2: %Destroy.type = converted constants.%Class, %Destroy.facet.loc22_5.1 [symbolic = %Destroy.facet.loc22_5.3 (constants.%Destroy.facet.86d)] // CHECK:STDOUT: %Destroy.facet.loc22_5.2: %Destroy.type = facet_value constants.%Class, (constants.%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc22_5.3 (constants.%Destroy.facet.86d)] // CHECK:STDOUT: %.loc22_5.3: %Destroy.type = converted constants.%Class, %Destroy.facet.loc22_5.2 [symbolic = %Destroy.facet.loc22_5.3 (constants.%Destroy.facet.86d)] -// CHECK:STDOUT: %specific_impl_fn.loc22_5.1: = specific_impl_function %impl.elem0.loc22_5.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.86d) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc22_5.1: = specific_impl_function %impl.elem0.loc22_5.1, @Destroy.WithSelf.Op.1(constants.%Destroy.facet.86d) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %s.var, %specific_impl_fn.loc22_5.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_5.2(%s.var) // CHECK:STDOUT: %impl.elem0.loc21: @Class.F.%.loc22_5.4 (%.73f) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0)] @@ -255,14 +255,14 @@ class Class(T: type) { // CHECK:STDOUT: %.loc21_5.2: %Destroy.type = converted constants.%Class, %Destroy.facet.loc21_5.1 [symbolic = %Destroy.facet.loc22_5.3 (constants.%Destroy.facet.86d)] // CHECK:STDOUT: %Destroy.facet.loc21_5.2: %Destroy.type = facet_value constants.%Class, (constants.%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc22_5.3 (constants.%Destroy.facet.86d)] // CHECK:STDOUT: %.loc21_5.3: %Destroy.type = converted constants.%Class, %Destroy.facet.loc21_5.2 [symbolic = %Destroy.facet.loc22_5.3 (constants.%Destroy.facet.86d)] -// CHECK:STDOUT: %specific_impl_fn.loc21: = specific_impl_function %impl.elem0.loc21, @Destroy.WithSelf.Op(constants.%Destroy.facet.86d) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc21: = specific_impl_function %impl.elem0.loc21, @Destroy.WithSelf.Op.1(constants.%Destroy.facet.86d) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %c.var, %specific_impl_fn.loc21 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21_5.2(%c.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { // CHECK:STDOUT: %T.patt.loc15_14.2 => constants.%T.patt diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index f593c3cee275..52b7ef8fb864 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -244,16 +244,16 @@ fn Run() { // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr.06d, (%DefaultOrUnformed.impl_witness.322) [concrete] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.9c5, @T.as.DefaultOrUnformed.impl.Op(%ptr.06d) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc18 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc16 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.loc9_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.9: type = fn_type @Destroy.Op.loc7 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.9: %Destroy.Op.type.1d8f74.9 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc18 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc16 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc12_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.8: type = fn_type @Destroy.WithSelf.Op.loc9_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.8: %Destroy.WithSelf.Op.type.ef016f.8 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.9: type = fn_type @Destroy.WithSelf.Op.loc7 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.9: %Destroy.WithSelf.Op.type.ef016f.9 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -444,16 +444,16 @@ fn Run() { // CHECK:STDOUT: %e.patt: %pattern_type.bae = ref_binding_pattern e [concrete = constants.%e.patt] // CHECK:STDOUT: %e.var_patt: %pattern_type.bae = var_pattern %e.patt [concrete = constants.%e.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc18: = bound_method %e.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc18: init %empty_tuple.type = call %Destroy.Op.bound.loc18(%e.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc16: = bound_method %d.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc16: init %empty_tuple.type = call %Destroy.Op.bound.loc16(%d.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc12: = bound_method %c.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call %Destroy.Op.bound.loc12(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18: = bound_method %e.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18(%e.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc16: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc16: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc16(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc12: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc12: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc12(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -461,35 +461,35 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: fn @ForwardDeclared.G [from "a.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18(%self.param: ref %ptr.06d) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18(%self.param: ref %ptr.06d) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16(%self.param: ref %ptr.11e) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16(%self.param: ref %ptr.11e) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.2(%self.param: ref %ForwardDeclared.08bd4c.1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_3.2(%self.param: ref %ForwardDeclared.08bd4c.1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %struct_type.x.a15) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %struct_type.x.a15) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.4(%self.param: ref %Field) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.4(%self.param: ref %Field) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7(%self.param: ref %Empty) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7(%self.param: ref %Empty) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/import_member_cycle.carbon b/toolchain/check/testdata/class/import_member_cycle.carbon index caab87d77ecf..ecb42d886a35 100644 --- a/toolchain/check/testdata/class/import_member_cycle.carbon +++ b/toolchain/check/testdata/class/import_member_cycle.carbon @@ -93,8 +93,8 @@ fn Run() { // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.impl_witness.9b1) [concrete] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.85a, @T.as.DefaultOrUnformed.impl.Op(%ptr) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc7 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -152,10 +152,10 @@ fn Run() { // CHECK:STDOUT: %a.patt: %pattern_type.c3e = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.c3e = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7(%self.param: ref %ptr) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/inheritance/derived_to_base.carbon b/toolchain/check/testdata/class/inheritance/derived_to_base.carbon index 784297d18fd0..ca955da76ee1 100644 --- a/toolchain/check/testdata/class/inheritance/derived_to_base.carbon +++ b/toolchain/check/testdata/class/inheritance/derived_to_base.carbon @@ -226,9 +226,9 @@ fn PassPartialB(b: partial B) { // CHECK:STDOUT: %.320: ref %A = temporary invalid, %A.val.985 [concrete] // CHECK:STDOUT: %.38f: ref %B = class_element_access %.320, element0 [concrete] // CHECK:STDOUT: %.79d: ref %A = class_element_access %.38f, element0 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc32_66.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.320, %Destroy.Op.1a2547.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc32_66.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.320, %Destroy.WithSelf.Op.403171.4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -457,23 +457,23 @@ fn PassPartialB(b: partial B) { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete = constants.%a.patt.bb7b23.2] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.320) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.320) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_66.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc32_66.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_66.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc32_66.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_66.3(%self.param: ref %struct_type.a.a92) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc32_66.3(%self.param: ref %struct_type.a.a92) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_66.4(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc32_66.4(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/inheritance/import_base.carbon b/toolchain/check/testdata/class/inheritance/import_base.carbon index ac03183e29c6..2d20f5ce6ac0 100644 --- a/toolchain/check/testdata/class/inheritance/import_base.carbon +++ b/toolchain/check/testdata/class/inheritance/import_base.carbon @@ -191,8 +191,8 @@ fn Run() { // CHECK:STDOUT: %Base.F.type: type = fn_type @Base.F [concrete] // CHECK:STDOUT: %Base.F: %Base.F.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc7_3.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc7_3.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -314,36 +314,36 @@ fn Run() { // CHECK:STDOUT: %.loc9_3.3: ref %Base = converted %a.ref.loc9, %.loc9_3.2 // CHECK:STDOUT: %.loc9_3.4: %Base = acquire_value %.loc9_3.3 // CHECK:STDOUT: %Base.F.call: init %empty_tuple.type = call %Base.F.bound(%.loc9_3.4) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Base.F [from "a.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.3(%self.param: ref %struct_type.x.unused_y.258) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.3(%self.param: ref %struct_type.x.unused_y.258) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.4(%self.param: ref %Base) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.4(%self.param: ref %Base) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.5(%self.param: ref %struct_type.base.cae) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.5(%self.param: ref %struct_type.base.cae) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.6(%self.param: ref %Child) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.6(%self.param: ref %Child) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/init_as.carbon b/toolchain/check/testdata/class/init_as.carbon index d3754a3edb09..868a10424320 100644 --- a/toolchain/check/testdata/class/init_as.carbon +++ b/toolchain/check/testdata/class/init_as.carbon @@ -74,9 +74,9 @@ fn G() -> i32 { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc20_28.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.0e3, %Destroy.Op.1a2547.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc20_28.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.0e3, %Destroy.WithSelf.Op.403171.4 [concrete] // CHECK:STDOUT: %v.patt: %pattern_type.f15 = ref_binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: %pattern_type.f15 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } @@ -122,23 +122,23 @@ fn G() -> i32 { // CHECK:STDOUT: %specific_fn.loc20_37: = specific_function %impl.elem0.loc20_37, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc20_37.2: = bound_method %.loc20_37.2, %specific_fn.loc20_37 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc20_37.2(%.loc20_37.2) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.0e3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.0e3) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_28.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_28.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_28.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_28.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_28.3(%self.param: ref %struct_type.a.b.b4c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_28.3(%self.param: ref %struct_type.a.b.b4c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_28.4(%self.param: ref %Class) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_28.4(%self.param: ref %Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -177,8 +177,8 @@ fn G() -> i32 { // CHECK:STDOUT: %v.var_patt: %pattern_type.f15 = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/local.carbon b/toolchain/check/testdata/class/local.carbon index 4cf1118a14a1..fcec0f022d5b 100644 --- a/toolchain/check/testdata/class/local.carbon +++ b/toolchain/check/testdata/class/local.carbon @@ -89,8 +89,8 @@ class A { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc26_19.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc26_19.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -177,8 +177,8 @@ class A { // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc26_20.2: = bound_method %.loc26_20.2, %specific_fn // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc26_20.2(%.loc26_20.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc26_19.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc26_19.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc26_19.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc26_19.2) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -207,19 +207,19 @@ class A { // CHECK:STDOUT: return %.loc19_23 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.3(%self.param: ref %struct_type.n.9ed) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.3(%self.param: ref %struct_type.n.9ed) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.4(%self.param: ref %B) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.4(%self.param: ref %B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/method/method.carbon b/toolchain/check/testdata/class/method/method.carbon index 559ae1c2c583..23337d5dcc1f 100644 --- a/toolchain/check/testdata/class/method/method.carbon +++ b/toolchain/check/testdata/class/method/method.carbon @@ -131,9 +131,9 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %.a72: ref %Class = temporary invalid, %Class.val [concrete] // CHECK:STDOUT: %Class.F.bound: = bound_method %.a72, %Class.F [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc39_20.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.a72, %Destroy.Op.1a2547.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc39_20.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.a72, %Destroy.WithSelf.Op.403171.4 [concrete] // CHECK:STDOUT: %CallWithRef.type: type = fn_type @CallWithRef [concrete] // CHECK:STDOUT: %CallWithRef: %CallWithRef.type = struct_value () [concrete] // CHECK:STDOUT: %c.patt.345: %pattern_type.f15 = ref_binding_pattern c [concrete] @@ -427,23 +427,23 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.F.bound: = bound_method %.loc39_20.2, %F.ref [concrete = constants.%Class.F.bound] // CHECK:STDOUT: %.loc39_20.3: %Class = acquire_value %.loc39_20.2 [concrete = constants.%Class.val] // CHECK:STDOUT: %Class.F.call: init %i32 = call %Class.F.bound(%.loc39_20.3) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.a72) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.a72) // CHECK:STDOUT: return %Class.F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc39_20.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc39_20.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc39_20.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc39_20.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc39_20.3(%self.param: ref %struct_type.k.e7c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc39_20.3(%self.param: ref %struct_type.k.e7c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc39_20.4(%self.param: ref %Class) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc39_20.4(%self.param: ref %Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -469,8 +469,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %G.ref: %Class.G.type = name_ref G, @Class.%Class.G.decl [concrete = constants.%Class.G] // CHECK:STDOUT: %Class.G.bound: = bound_method %c.ref, %G.ref // CHECK:STDOUT: %Class.G.call: init %i32 = call %Class.G.bound(%c.ref) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%c.var) // CHECK:STDOUT: return %Class.G.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -507,8 +507,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.F.bound: = bound_method %.loc58_15.2, %F.ref // CHECK:STDOUT: %.loc58_15.3: %Class = acquire_value %.loc58_15.2 // CHECK:STDOUT: %Class.F.call: init %i32 = call %Class.F.bound(%.loc58_15.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc58_15.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc58_15.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc58_15.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc58_15.2) // CHECK:STDOUT: return %Class.F.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -521,8 +521,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %G.ref: %Class.G.type = name_ref G, @Class.%Class.G.decl [concrete = constants.%Class.G] // CHECK:STDOUT: %Class.G.bound: = bound_method %.loc62_15.2, %G.ref // CHECK:STDOUT: %Class.G.call: init %i32 = call %Class.G.bound(%.loc62_15.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc62_15.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc62_15.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc62_15.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc62_15.2) // CHECK:STDOUT: return %Class.G.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/method/static_method.carbon b/toolchain/check/testdata/class/method/static_method.carbon index 8196cc9bb62f..5f36b6c23d79 100644 --- a/toolchain/check/testdata/class/method/static_method.carbon +++ b/toolchain/check/testdata/class/method/static_method.carbon @@ -53,8 +53,8 @@ fn Run() -> i32 { // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.135) [concrete] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.de4, @T.as.DefaultOrUnformed.impl.Op(%Class) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc20_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -131,14 +131,14 @@ fn Run() -> i32 { // CHECK:STDOUT: %c.ref: ref %Class = name_ref c, %c // CHECK:STDOUT: %F.ref: %Class.F.type = name_ref F, @Class.%Class.F.decl [concrete = constants.%Class.F] // CHECK:STDOUT: %Class.F.call: init %i32 = call %F.ref() -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%c.var) // CHECK:STDOUT: return %Class.F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.2(%self.param: ref %Class) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.2(%self.param: ref %Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/method/virtual.carbon b/toolchain/check/testdata/class/method/virtual.carbon index c69b0e58c983..e5f80d976595 100644 --- a/toolchain/check/testdata/class/method/virtual.carbon +++ b/toolchain/check/testdata/class/method/virtual.carbon @@ -666,8 +666,8 @@ class T2(G2: type) { // CHECK:STDOUT: %Base.val: %Base = struct_value (%uninit) [concrete] // CHECK:STDOUT: %Derived.val: %Derived = struct_value (%Base.val) [concrete] // CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc15_3.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc15_3.5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -760,29 +760,29 @@ class T2(G2: type) { // CHECK:STDOUT: %d.patt: %pattern_type.746 = ref_binding_pattern d [concrete = constants.%d.patt] // CHECK:STDOUT: %d.var_patt: %pattern_type.746 = var_pattern %d.patt [concrete = constants.%d.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%d.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.1(%self.param: ref %ptr.454) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.1(%self.param: ref %ptr.454) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.2(%self.param: ref %struct_type.vptr) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.2(%self.param: ref %struct_type.vptr) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.3(%self.param: ref %Base) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.3(%self.param: ref %Base) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.4(%self.param: ref %struct_type.base.507) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.4(%self.param: ref %struct_type.base.507) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.5(%self.param: ref %Derived) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.5(%self.param: ref %Derived) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -803,8 +803,8 @@ class T2(G2: type) { // CHECK:STDOUT: %Base.H: %Base.H.type = struct_value () [concrete] // CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete] // CHECK:STDOUT: %Base.val: %Base = struct_value (%Base.vtable_ptr) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -838,19 +838,19 @@ class T2(G2: type) { // CHECK:STDOUT: %v.patt: %pattern_type.b8d = ref_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: %v.var_patt: %pattern_type.b8d = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %ptr.454) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %ptr.454) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %struct_type.vptr) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %struct_type.vptr) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %Base) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %Base) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -905,8 +905,8 @@ class T2(G2: type) { // CHECK:STDOUT: %bound_method.c9d: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %Base.val: %Base = struct_value (%Base.vtable_ptr, %int_5.eef, %int_3.410) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc15_3.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc15_3.5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -988,28 +988,28 @@ class T2(G2: type) { // CHECK:STDOUT: %b2.var_patt: %pattern_type.912 = var_pattern %b2.patt [concrete = constants.%b2.var_patt] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %Destroy.Op.bound.loc15: = bound_method %b2.var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc15: init %empty_tuple.type = call %Destroy.Op.bound.loc15(%b2.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc14: = bound_method %b1.var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc14: init %empty_tuple.type = call %Destroy.Op.bound.loc14(%b1.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc15: = bound_method %b2.var, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc15: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc15(%b2.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc14: = bound_method %b1.var, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc14: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc14(%b1.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.1(%self.param: ref %ptr.454) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.1(%self.param: ref %ptr.454) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.2(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.2(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.3(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.3(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.4(%self.param: ref %struct_type.vptr.m1.m2) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.4(%self.param: ref %struct_type.vptr.m1.m2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.5(%self.param: ref %Base) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_3.5(%self.param: ref %Base) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1177,8 +1177,8 @@ class T2(G2: type) { // CHECK:STDOUT: %Derived.F.type.48cdab.2: type = fn_type @Derived.F.loc23 [concrete] // CHECK:STDOUT: %Derived.F.bd5be1.2: %Derived.F.type.48cdab.2 = struct_value () [concrete] // CHECK:STDOUT: %.8c0: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.0b2, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23_28.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc23_28.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -1237,14 +1237,14 @@ class T2(G2: type) { // CHECK:STDOUT: %.loc23_28.5: %T2 = acquire_value %.loc23_28.4 // CHECK:STDOUT: %T2.as.ImplicitAs.impl.Convert.call: init %T1 to %.4 = call %bound_method(%.loc23_28.5) // CHECK:STDOUT: %.loc23_28.6: init %T1 = converted %Derived.F.call, %T2.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc23_28.4, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc23_28.4) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc23_28.4, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc23_28.4) // CHECK:STDOUT: return %.loc23_28.6 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_28.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_28.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_28.2(%self.param: ref %T2) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_28.2(%self.param: ref %T2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/nested.carbon b/toolchain/check/testdata/class/nested.carbon index 20b39242d789..5a389e7fe825 100644 --- a/toolchain/check/testdata/class/nested.carbon +++ b/toolchain/check/testdata/class/nested.carbon @@ -98,10 +98,10 @@ fn F(a: Outer*) { // CHECK:STDOUT: %DefaultOrUnformed.facet.809: %DefaultOrUnformed.type = facet_value %Inner, (%DefaultOrUnformed.impl_witness.f70) [concrete] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.ce1: = specific_function %T.as.DefaultOrUnformed.impl.Op.0e7, @T.as.DefaultOrUnformed.impl.Op(%Inner) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc19_5.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc18_5.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc19_5.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc18_5.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: %o.patt.a05f50.2: %pattern_type.d6c = ref_binding_pattern o [concrete] // CHECK:STDOUT: %o.var_patt.6496fb.2: %pattern_type.d6c = var_pattern %o.patt.a05f50.2 [concrete] // CHECK:STDOUT: %i.patt.539460.2: %pattern_type.dc4 = ref_binding_pattern i [concrete] @@ -261,10 +261,10 @@ fn F(a: Outer*) { // CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt.539460.1] // CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt.15311d.1] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc19: = bound_method %i.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc19: init %empty_tuple.type = call %Destroy.Op.bound.loc19(%i.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc18: = bound_method %o.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc18: init %empty_tuple.type = call %Destroy.Op.bound.loc18(%o.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc19: = bound_method %i.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc19: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc19(%i.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18: = bound_method %o.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18(%o.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -300,10 +300,10 @@ fn F(a: Outer*) { // CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt.539460.2] // CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt.15311d.2] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc30: = bound_method %i.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc30: init %empty_tuple.type = call %Destroy.Op.bound.loc30(%i.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc29: = bound_method %o.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc29: init %empty_tuple.type = call %Destroy.Op.bound.loc29(%o.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc30: = bound_method %i.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc30: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc30(%i.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc29: = bound_method %o.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc29: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc29(%o.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -339,33 +339,33 @@ fn F(a: Outer*) { // CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt.539460.3] // CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt.15311d.3] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc37: = bound_method %i.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc37: init %empty_tuple.type = call %Destroy.Op.bound.loc37(%i.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc36: = bound_method %o.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc36: init %empty_tuple.type = call %Destroy.Op.bound.loc36(%o.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc37: = bound_method %i.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc37: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc37(%i.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc36: = bound_method %o.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc36: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc36(%o.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_5.1(%self.param: ref %ptr.001) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19_5.1(%self.param: ref %ptr.001) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_5.2(%self.param: ref %ptr.286) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19_5.2(%self.param: ref %ptr.286) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_5.3(%self.param: ref %struct_type.pi.po.qi) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19_5.3(%self.param: ref %struct_type.pi.po.qi) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_5.4(%self.param: ref %Inner) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19_5.4(%self.param: ref %Inner) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_5.1(%self.param: ref %struct_type.po.qo.pi) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_5.1(%self.param: ref %struct_type.po.qo.pi) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_5.2(%self.param: ref %Outer) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_5.2(%self.param: ref %Outer) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/nested_name.carbon b/toolchain/check/testdata/class/nested_name.carbon index 453f963cc114..ee37bafd60dc 100644 --- a/toolchain/check/testdata/class/nested_name.carbon +++ b/toolchain/check/testdata/class/nested_name.carbon @@ -79,8 +79,8 @@ fn G(o: Outer) { // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Inner, (%DefaultOrUnformed.impl_witness.f70) [concrete] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.0e7, @T.as.DefaultOrUnformed.impl.Op(%Inner) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc26_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc26_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -194,24 +194,24 @@ fn G(o: Outer) { // CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt] // CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %i.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%i.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_3.3(%self.param: ref %struct_type.n) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_3.3(%self.param: ref %struct_type.n) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_3.4(%self.param: ref %Inner) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_3.4(%self.param: ref %Inner) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/reorder_qualified.carbon b/toolchain/check/testdata/class/reorder_qualified.carbon index 447cb1fc4620..05093199b781 100644 --- a/toolchain/check/testdata/class/reorder_qualified.carbon +++ b/toolchain/check/testdata/class/reorder_qualified.carbon @@ -139,14 +139,14 @@ class A { // CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %D.val: %D = struct_value (%int_4.4eb) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc36_7.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc35_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.loc34_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.10: type = fn_type @Destroy.Op.loc33_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.10: %Destroy.Op.type.1d8f74.10 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc36_7.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc35_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.8: type = fn_type @Destroy.WithSelf.Op.loc34_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.8: %Destroy.WithSelf.Op.type.ef016f.8 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.10: type = fn_type @Destroy.WithSelf.Op.loc33_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.10: %Destroy.WithSelf.Op.type.ef016f.10 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -349,14 +349,14 @@ class A { // CHECK:STDOUT: %C.CF.call: init %empty_tuple.type = call %CF.ref() // CHECK:STDOUT: %DF.ref: %D.DF.type = name_ref DF, @D.%D.DF.decl [concrete = constants.%D.DF] // CHECK:STDOUT: %D.DF.call: init %empty_tuple.type = call %DF.ref() -// CHECK:STDOUT: %Destroy.Op.bound.loc36: = bound_method %d.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc36: init %empty_tuple.type = call %Destroy.Op.bound.loc36(%d.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc35: = bound_method %c.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc35: init %empty_tuple.type = call %Destroy.Op.bound.loc35(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc34: = bound_method %b.var, constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %Destroy.Op.call.loc34: init %empty_tuple.type = call %Destroy.Op.bound.loc34(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc33: = bound_method %a.var, constants.%Destroy.Op.1a2547.10 -// CHECK:STDOUT: %Destroy.Op.call.loc33: init %empty_tuple.type = call %Destroy.Op.bound.loc33(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc36: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc36: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc36(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc35: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc35: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc35(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc34: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc34: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc34(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc33: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc33: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc33(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -364,49 +364,49 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: fn @A.AF(); // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc36_7.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc36_7.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc36_7.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc36_7.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc36_7.3(%self.param: ref %struct_type.d.bde) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc36_7.3(%self.param: ref %struct_type.d.bde) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc36_7.4(%self.param: ref %D) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc36_7.4(%self.param: ref %D) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_7.1(%self.param: ref %struct_type.c.73d) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_7.1(%self.param: ref %struct_type.c.73d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_7.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_7.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_7.1(%self.param: ref %struct_type.b.0bf) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_7.1(%self.param: ref %struct_type.b.0bf) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_7.2(%self.param: ref %B) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_7.2(%self.param: ref %B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc33_7.1(%self.param: ref %struct_type.a.a92) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc33_7.1(%self.param: ref %struct_type.a.a92) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc33_7.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc33_7.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/scope.carbon b/toolchain/check/testdata/class/scope.carbon index a0ff8a00a799..326891f5529f 100644 --- a/toolchain/check/testdata/class/scope.carbon +++ b/toolchain/check/testdata/class/scope.carbon @@ -81,8 +81,8 @@ fn Run() { // CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete] // CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc31_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc31_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -203,16 +203,16 @@ fn Run() { // CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc31: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc31: init %empty_tuple.type = call %Destroy.Op.bound.loc31(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc30: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc30: init %empty_tuple.type = call %Destroy.Op.bound.loc30(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc31: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc31: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc31(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc30: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc30: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc30(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/self/fail_ref_self.carbon b/toolchain/check/testdata/class/self/fail_ref_self.carbon index a268e694262c..53f2f795b513 100644 --- a/toolchain/check/testdata/class/self/fail_ref_self.carbon +++ b/toolchain/check/testdata/class/self/fail_ref_self.carbon @@ -61,8 +61,8 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc35_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc35_8.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -149,14 +149,14 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: %F.ref.loc35: %Class.F.type = name_ref F, @Class.%Class.F.decl [concrete = constants.%Class.F] // CHECK:STDOUT: %Class.F.bound.loc35: = bound_method %.loc35_8.2, %F.ref.loc35 // CHECK:STDOUT: %Class.F.call.loc35: init %empty_tuple.type = call %Class.F.bound.loc35(%.loc35_8.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc35_8.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc35_8.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc35_8.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc35_8.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_8.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_8.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_8.2(%self.param: ref %Class) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_8.2(%self.param: ref %Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/self/raw_self_type.carbon b/toolchain/check/testdata/class/self/raw_self_type.carbon index 2cc2225f6d05..4b79e44e2bcc 100644 --- a/toolchain/check/testdata/class/self/raw_self_type.carbon +++ b/toolchain/check/testdata/class/self/raw_self_type.carbon @@ -62,8 +62,8 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: %.8ed: type = fn_type_with_self_type %Copy.WithSelf.Op.type.707, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.8fa, @ptr.as.Copy.impl.Op(%Class) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc18 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: %MemberNamedSelf: type = class_type @MemberNamedSelf [concrete] // CHECK:STDOUT: %Self.7fc: type = class_type @Self [concrete] // CHECK:STDOUT: %pattern_type.bb1: type = pattern_type %MemberNamedSelf [concrete] @@ -196,14 +196,14 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: %p.patt: %pattern_type.8c5 = ref_binding_pattern p [concrete = constants.%p.patt] // CHECK:STDOUT: %p.var_patt: %pattern_type.8c5 = var_pattern %p.patt [concrete = constants.%p.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc18: = bound_method %p.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc18: init %empty_tuple.type = call %Destroy.Op.bound.loc18(%p.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc17: = bound_method %Self.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc17: init %empty_tuple.type = call %Destroy.Op.bound.loc17(%Self.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc17: = bound_method %Self.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc17: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc17(%Self.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.7ee) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18(%self.param: ref %ptr.7ee) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: fn @MemberNamedSelf.F(%x.param.loc28: %MemberNamedSelf, %y.param.loc28: %Self.7fc) { // CHECK:STDOUT: !entry: diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index fd004ca452ac..715d9b1010d4 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -192,8 +192,8 @@ fn G() { // CHECK:STDOUT: %a.patt.40c: %pattern_type.3f5 = wrapper_binding_pattern a, %a.param_patt.79a [concrete] // CHECK:STDOUT: %F.specific_fn.e0d: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.1a4: = complete_type_witness %array_type.9a3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -323,19 +323,19 @@ fn G() { // CHECK:STDOUT: %.loc8_11.1: ref %C = splice_block %return.param {} // CHECK:STDOUT: %.loc10: %array_type.9a3 = acquire_value %a.ref // CHECK:STDOUT: %F.call: init %C to %.loc8_11.1 = call %F.specific_fn(%.loc10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.9a3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -436,8 +436,8 @@ fn G() { // CHECK:STDOUT: %a.patt.40c: %pattern_type.3f5 = wrapper_binding_pattern a, %a.param_patt.79a [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_3.1ba) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.1a4: = complete_type_witness %array_type.9a3 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.763: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -578,19 +578,19 @@ fn G() { // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_3.1ba) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %.loc10: %array_type.9a3 = acquire_value %a.ref // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%.loc10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return %F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.9a3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -660,8 +660,8 @@ fn G() { // CHECK:STDOUT: %a.patt.40c: %pattern_type.3f5 = wrapper_binding_pattern a, %a.param_patt.79a [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%C, %int_3) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.1a4: = complete_type_witness %array_type.9a3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -777,19 +777,19 @@ fn G() { // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C, constants.%int_3) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %.loc10: %array_type.9a3 = acquire_value %a.ref // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.9a3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -870,8 +870,8 @@ fn G() { // CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc10_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc10_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.d6a: = complete_type_witness %array_type.cc9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1003,19 +1003,19 @@ fn G() { // CHECK:STDOUT: %.loc8_11.1: ref %C = splice_block %return.param {} // CHECK:STDOUT: %.loc21: %array_type.cc9 = converted %a.ref, [concrete = ] // CHECK:STDOUT: %F.call: init %C to %.loc8_11.1 = call %F.specific_fn() -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %array_type.9a3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1119,8 +1119,8 @@ fn G() { // CHECK:STDOUT: %a.patt.40c: %pattern_type.3f5 = wrapper_binding_pattern a, %a.param_patt.79a [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_3.1ba) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.1a4: = complete_type_witness %array_type.9a3 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.763: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -1271,19 +1271,19 @@ fn G() { // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_3.1ba) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %.loc22: %array_type.9a3 = converted %a.ref, [concrete = ] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn() -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return %F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %D) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %D) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type.cec) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.3(%self.param: ref %array_type.cec) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1383,8 +1383,8 @@ fn G() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %array: %array_type.9a3 = tuple_value (%C.val, %C.val, %C.val) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1527,19 +1527,19 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.9a3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/deduce/conversion.carbon b/toolchain/check/testdata/deduce/conversion.carbon index d3d9d0b07507..060356351044 100644 --- a/toolchain/check/testdata/deduce/conversion.carbon +++ b/toolchain/check/testdata/deduce/conversion.carbon @@ -117,9 +117,9 @@ fn G(a: A) { // CHECK:STDOUT: %.367: ref %A = temporary invalid, %A.val [concrete] // CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.bound.5ecf75.2: = bound_method %A.val, %A.as.ImplicitAs.impl.Convert.dbe75c.1 [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%B) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc16_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.367, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc16_8.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.367, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { @@ -141,13 +141,13 @@ fn G(a: A) { // CHECK:STDOUT: %.loc16_12.2: type = converted %.loc16_8.1, %.loc16_12.1 [concrete = constants.%B] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%B) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn() -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.367) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_8.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_8.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_8.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_8.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -170,8 +170,8 @@ fn G(a: A) { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%empty_tuple.type) [concrete] // CHECK:STDOUT: %.3de: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.554, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc16_9.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc16_9.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%a.param: %A) { @@ -189,14 +189,14 @@ fn G(a: A) { // CHECK:STDOUT: %.loc16_9.3: ref %B = temporary %.loc16_9.1, %.loc16_9.2 // CHECK:STDOUT: %.loc16_9.4: %B = acquire_value %.loc16_9.3 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc16_9.4) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc16_9.3, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc16_9.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc16_9.3, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc16_9.3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_9.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_9.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_9.2(%self.param: ref %B) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_9.2(%self.param: ref %B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index 866479cdf5cd..ca72981cdeae 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -892,9 +892,9 @@ fn G() -> i32 { // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_0.3c0) [concrete] // CHECK:STDOUT: %.0e2: ref %WithNontype.888 = temporary invalid, %WithNontype.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc9_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.0e2, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc9_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.0e2, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.678: = bound_method %int_0.3c0, %Int.as.Copy.impl.Op.4f6 [concrete] // CHECK:STDOUT: %bound_method.28e: = bound_method %int_0.3c0, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } @@ -1031,13 +1031,13 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc9_15.2: ref %WithNontype.888 = temporary %.loc9_13.2, %.loc9_15.1 [concrete = constants.%.0e2] // CHECK:STDOUT: %.loc9_15.3: %WithNontype.888 = acquire_value %.loc9_15.2 [concrete = constants.%WithNontype.val] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%.loc9_15.3) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.0e2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.0e2) // CHECK:STDOUT: return %F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_15.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_15.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_15.2(%self.param: ref %WithNontype.888) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_15.2(%self.param: ref %WithNontype.888) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon index 50f3292d3bee..64a645c6a634 100644 --- a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon +++ b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon @@ -145,12 +145,12 @@ fn G() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc13_30.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.72d: = bound_method %.115, %Destroy.Op.1a2547.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc13_8 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.bc7: = bound_method %.eb0, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc13_30.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.1a9: = bound_method %.115, %Destroy.WithSelf.Op.403171.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc13_8 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.630: = bound_method %.eb0, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -283,19 +283,19 @@ fn G() { // CHECK:STDOUT: %.loc13_30.5: ref %C = temporary %.loc13_30.2, %.loc13_30.4 [concrete = constants.%.115] // CHECK:STDOUT: %.loc13_30.6: %C = acquire_value %.loc13_30.5 [concrete = constants.%C.val] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc13_8.3, %.loc13_30.6) -// CHECK:STDOUT: %Destroy.Op.call.loc13_30: init %empty_tuple.type = call constants.%Destroy.Op.bound.72d(constants.%.115) -// CHECK:STDOUT: %Destroy.Op.call.loc13_8: init %empty_tuple.type = call constants.%Destroy.Op.bound.bc7(constants.%.eb0) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13_30: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.1a9(constants.%.115) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13_8: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.630(constants.%.eb0) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_30.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_30.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_30.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_30.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_8(%self.param: ref %HoldsType.30f) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_8(%self.param: ref %HoldsType.30f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -388,12 +388,12 @@ fn G() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc13_33.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.72d: = bound_method %.115, %Destroy.Op.1a2547.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc13_8 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.e30: = bound_method %.344, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc13_33.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.1a9: = bound_method %.115, %Destroy.WithSelf.Op.403171.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc13_8 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.cd1: = bound_method %.344, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -523,19 +523,19 @@ fn G() { // CHECK:STDOUT: %.loc13_33.5: ref %C = temporary %.loc13_33.2, %.loc13_33.4 [concrete = constants.%.115] // CHECK:STDOUT: %.loc13_33.6: %C = acquire_value %.loc13_33.5 [concrete = constants.%C.val] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc13_8.3, %.loc13_33.6) -// CHECK:STDOUT: %Destroy.Op.call.loc13_33: init %empty_tuple.type = call constants.%Destroy.Op.bound.72d(constants.%.115) -// CHECK:STDOUT: %Destroy.Op.call.loc13_8: init %empty_tuple.type = call constants.%Destroy.Op.bound.e30(constants.%.344) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13_33: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.1a9(constants.%.115) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13_8: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.cd1(constants.%.344) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_33.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_33.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_33.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_33.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_8(%self.param: ref %HoldsType.53c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_8(%self.param: ref %HoldsType.53c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -633,9 +633,9 @@ fn G() { // CHECK:STDOUT: %.0de: ref %Class = temporary invalid, %Class.val [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%Class.val) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc30_13.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.0de, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc30_13.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.0de, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: %HoldsType.af5: type = class_type @HoldsType, @HoldsType(%Class.val) [concrete] // CHECK:STDOUT: %HoldsType.val.8bc: %HoldsType.af5 = struct_value () [concrete] // CHECK:STDOUT: } @@ -809,18 +809,18 @@ fn G() { // CHECK:STDOUT: %.loc30_13.3: %Class = acquire_value %.loc30_13.2 [concrete = constants.%Class.val] // CHECK:STDOUT: %G.specific_fn: = specific_function %G.ref, @G(constants.%Class.val) [concrete = constants.%G.specific_fn] // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn() -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.0de) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.0de) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc30_13.1(%self.param: ref type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc30_13.1(%self.param: ref type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc30_13.2(%self.param: ref %struct_type.t) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc30_13.2(%self.param: ref %struct_type.t) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc30_13.3(%self.param: ref %Class) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc30_13.3(%self.param: ref %Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -933,9 +933,9 @@ fn G() { // CHECK:STDOUT: %HoldsType.f11: type = class_type @HoldsType, @HoldsType(%array) [concrete] // CHECK:STDOUT: %HoldsType.val: %HoldsType.f11 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc17_27.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.1c6, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc17_27.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.1c6, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1085,13 +1085,13 @@ fn G() { // CHECK:STDOUT: %.loc17_6.3: init %HoldsType.f11 to %.loc17_6.2 = class_init () [concrete = constants.%HoldsType.val] // CHECK:STDOUT: %.loc17_8: init %HoldsType.f11 = converted %.loc17_6.1, %.loc17_6.3 [concrete = constants.%HoldsType.val] // CHECK:STDOUT: %.loc17_48: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.1c6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.1c6) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17_27.1(%self.param: ref type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc17_27.1(%self.param: ref type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17_27.2(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc17_27.2(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/eval/call.carbon b/toolchain/check/testdata/eval/call.carbon index c284115b2bfc..214cf230dc58 100644 --- a/toolchain/check/testdata/eval/call.carbon +++ b/toolchain/check/testdata/eval/call.carbon @@ -213,7 +213,7 @@ fn H() { // CHECK:STDOUT: %.d54: %F.call = splice_inst @UseFGenerically.%.loc11_3.31 [template] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Self.0e7: %Destroy.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self.0e7) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Self.0e7) [symbolic] // CHECK:STDOUT: %Destroy.WithSelf.Op.42b: %Destroy.WithSelf.Op.type.d3e = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.assoc_type: type = assoc_entity_type @Destroy [concrete] // CHECK:STDOUT: %assoc0.ae8: %Destroy.assoc_type = assoc_entity element0, imports.%Core.import_ref.918 [concrete] @@ -245,20 +245,20 @@ fn H() { // CHECK:STDOUT: %inst.specific_inst: = inst_value [concrete] { // CHECK:STDOUT: %.6ba: ref %C = specific_inst @UseFGenerically.%v.var, @UseFGenerically(%int_3.410) // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc11_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.2: = custom_witness (%Destroy.Op.1a2547.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.1a5: %Destroy.type = facet_value %C, (%custom_witness.df9cc1.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.7f2: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.1a5) [concrete] -// CHECK:STDOUT: %.da8: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.7f2, %Destroy.facet.1a5 [concrete] -// CHECK:STDOUT: %inst.splice_block.8b0: = inst_value [concrete] { -// CHECK:STDOUT: %.0c7: = splice_block %bound_method.396 { -// CHECK:STDOUT: %impl.elem0.96c: %.da8 = impl_witness_access %custom_witness.df9cc1.2, element0 [concrete = %Destroy.Op.1a2547.2] -// CHECK:STDOUT: %bound_method.396: = bound_method %.6ba, %impl.elem0.96c +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc11_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.2: = custom_witness (%Destroy.WithSelf.Op.403171.2), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.b0f: %Destroy.type = facet_value %C, (%custom_witness.6c4ec3.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.cb4: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.b0f) [concrete] +// CHECK:STDOUT: %.c3c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.cb4, %Destroy.facet.b0f [concrete] +// CHECK:STDOUT: %inst.splice_block.ed1: = inst_value [concrete] { +// CHECK:STDOUT: %.41b: = splice_block %bound_method.b4b { +// CHECK:STDOUT: %impl.elem0.bf4: %.c3c = impl_witness_access %custom_witness.6c4ec3.2, element0 [concrete = %Destroy.WithSelf.Op.403171.2] +// CHECK:STDOUT: %bound_method.b4b: = bound_method %.6ba, %impl.elem0.bf4 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %inst.call: = inst_value [concrete] { -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %.0c7(%.6ba) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %.41b(%.6ba) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -353,9 +353,9 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -393,7 +393,7 @@ fn H() { // CHECK:STDOUT: %.loc11_3.32 => // CHECK:STDOUT: %.loc11_3.33 => constants.%inst.specific_inst // CHECK:STDOUT: %.loc11_3.34 => invalid -// CHECK:STDOUT: %.loc11_3.35 => constants.%inst.splice_block.8b0 +// CHECK:STDOUT: %.loc11_3.35 => constants.%inst.splice_block.ed1 // CHECK:STDOUT: %.loc11_3.36 => // CHECK:STDOUT: %.loc11_3.37 => invalid // CHECK:STDOUT: %.loc11_3.38 => constants.%inst.call @@ -416,9 +416,9 @@ fn H() { // CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %tuple.479: %tuple.type.555 = tuple_value (%int_1.0c6, %int_2.295, %int_3.410) [concrete] // CHECK:STDOUT: %.e1e: ref %tuple.type.555 = temporary invalid, %tuple.479 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_5.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e1e, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_5.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.e1e, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { @@ -427,18 +427,18 @@ fn H() { // CHECK:STDOUT: %.loc8_5.1: ref %tuple.type.555 = temporary_storage // CHECK:STDOUT: %F.call: init %tuple.type.555 to %.loc8_5.1 = call %F.ref() [concrete = constants.%tuple.479] // CHECK:STDOUT: %.loc8_5.2: ref %tuple.type.555 = temporary %.loc8_5.1, %F.call [concrete = constants.%.e1e] -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e1e) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.e1e) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_5.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_5.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_5.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_5.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_5.3(%self.param: ref %tuple.type.555) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_5.3(%self.param: ref %tuple.type.555) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -462,8 +462,8 @@ fn H() { // CHECK:STDOUT: %tuple.479: %tuple.type.555 = tuple_value (%int_1.0c6, %int_2.295, %int_3.410) [concrete] // CHECK:STDOUT: %a.patt: %pattern_type.777 = ref_binding_pattern a [concrete] // CHECK:STDOUT: %a.var_patt: %pattern_type.777 = var_pattern %a.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { @@ -485,19 +485,19 @@ fn H() { // CHECK:STDOUT: %a.patt: %pattern_type.777 = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.777 = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %tuple.type.555) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %tuple.type.555) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -547,9 +547,9 @@ fn H() { // CHECK:STDOUT: %.e1e: ref %tuple.type.555 = temporary invalid, %tuple.479 [concrete] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.ad8: %tuple.type.f94 = tuple_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc17_32.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e1e, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc17_32.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.e1e, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -621,18 +621,18 @@ fn H() { // CHECK:STDOUT: %a.patt: = ref_binding_pattern a [concrete = ] // CHECK:STDOUT: %a.var_patt: = var_pattern %a.patt [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e1e) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.e1e) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17_32.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc17_32.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17_32.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc17_32.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17_32.3(%self.param: ref %tuple.type.555) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc17_32.3(%self.param: ref %tuple.type.555) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -655,9 +655,9 @@ fn H() { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%C.val) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc13_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.115, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc13_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.115, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -690,13 +690,13 @@ fn H() { // CHECK:STDOUT: %.loc13_7.3: %C = acquire_value %.loc13_7.2 [concrete = constants.%C.val] // CHECK:STDOUT: %G.specific_fn: = specific_function %G.ref, @G(constants.%C.val) [concrete = constants.%G.specific_fn] // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn() -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.115) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_7.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_7.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_7.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_7.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon index c3528f43ae65..4994de85715c 100644 --- a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon +++ b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon @@ -137,9 +137,9 @@ fn F() { // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%facet_value) [concrete] // CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc45_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.115, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc45_8.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.115, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: %.833: type = fn_type_with_self_type %A.WithSelf.AA.type.e6d, %A.facet.7ce [concrete] // CHECK:STDOUT: %.02b: type = fn_type_with_self_type %B.WithSelf.BB.type.77e, %B.facet.a13 [concrete] // CHECK:STDOUT: } @@ -411,13 +411,13 @@ fn F() { // CHECK:STDOUT: %.loc45_8.2: ref %C = temporary %.loc45_6.2, %.loc45_8.1 [concrete = constants.%.115] // CHECK:STDOUT: %.loc45_8.3: %C = acquire_value %.loc45_8.2 [concrete = constants.%C.val] // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn(%.loc45_8.3) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.115) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc45_8.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc45_8.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc45_8.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc45_8.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon b/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon index ed8a815c3929..7c6f1583405b 100644 --- a/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon @@ -475,9 +475,9 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] // CHECK:STDOUT: %.b65: ref %GenericParam = temporary invalid, %GenericParam.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc18_38.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.b65, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc18_38.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.b65, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -638,13 +638,13 @@ fn G() { // CHECK:STDOUT: %.loc18_38.2: ref %GenericParam = temporary %.loc18_36.2, %.loc18_38.1 [concrete = constants.%.b65] // CHECK:STDOUT: %.loc18_38.3: %GenericParam = acquire_value %.loc18_38.2 [concrete = constants.%GenericParam.val] // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn(%.loc18_38.3) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.b65) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.b65) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_38.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_38.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_38.2(%self.param: ref %GenericParam) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_38.2(%self.param: ref %GenericParam) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon index 472a6f88c00e..8566be319ec2 100644 --- a/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon @@ -57,9 +57,9 @@ fn F() { // CHECK:STDOUT: %WalkAnimal.specific_fn: = specific_function %WalkAnimal, @WalkAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: %.4ea: ref %Goat = temporary invalid, %Goat.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23_17.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.4ea, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc23_17.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.4ea, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -169,13 +169,13 @@ fn F() { // CHECK:STDOUT: %.loc23_17.2: ref %Goat = temporary %.loc23_15.2, %.loc23_17.1 [concrete = constants.%.4ea] // CHECK:STDOUT: %.loc23_17.3: %Goat = acquire_value %.loc23_17.2 [concrete = constants.%Goat.val] // CHECK:STDOUT: %WalkAnimal.call: init %empty_tuple.type = call %WalkAnimal.specific_fn(%.loc23_17.3) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.4ea) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.4ea) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_17.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_17.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_17.2(%self.param: ref %Goat) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_17.2(%self.param: ref %Goat) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon index fc313cd2d31e..33f8e8656565 100644 --- a/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon @@ -174,12 +174,12 @@ fn B() { // CHECK:STDOUT: %.cd4: ref %ImplsGeneric = temporary invalid, %ImplsGeneric.val [concrete] // CHECK:STDOUT: %.b65: ref %GenericParam = temporary invalid, %GenericParam.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc20_44.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.852: = bound_method %.b65, %Destroy.Op.1a2547.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc20_24 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.047: = bound_method %.cd4, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc20_44.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.d4a: = bound_method %.b65, %Destroy.WithSelf.Op.403171.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc20_24 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.03b: = bound_method %.cd4, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: %complete_type.35b: = complete_type_witness %Generic.type.b40 [concrete] // CHECK:STDOUT: %.636: type = fn_type_with_self_type %Generic.WithSelf.F.type.7ef, %Generic.facet [concrete] // CHECK:STDOUT: } @@ -378,19 +378,19 @@ fn B() { // CHECK:STDOUT: %.loc20_44.2: ref %GenericParam = temporary %.loc20_42.2, %.loc20_44.1 [concrete = constants.%.b65] // CHECK:STDOUT: %.loc20_44.3: %GenericParam = acquire_value %.loc20_44.2 [concrete = constants.%GenericParam.val] // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn(%.loc20_24.3, %.loc20_44.3) -// CHECK:STDOUT: %Destroy.Op.call.loc20_44: init %empty_tuple.type = call constants.%Destroy.Op.bound.852(constants.%.b65) -// CHECK:STDOUT: %Destroy.Op.call.loc20_24: init %empty_tuple.type = call constants.%Destroy.Op.bound.047(constants.%.cd4) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc20_44: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.d4a(constants.%.b65) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc20_24: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.03b(constants.%.cd4) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_44.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_44.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_44.2(%self.param: ref %GenericParam) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_44.2(%self.param: ref %GenericParam) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_24(%self.param: ref %ImplsGeneric) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_24(%self.param: ref %ImplsGeneric) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -567,9 +567,9 @@ fn B() { // CHECK:STDOUT: %A.specific_fn: = specific_function %A, @A(%I.facet.dfc) [concrete] // CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc12_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.115, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc12_8.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.115, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -731,13 +731,13 @@ fn B() { // CHECK:STDOUT: %.loc12_8.2: ref %C = temporary %.loc12_6.2, %.loc12_8.1 [concrete = constants.%.115] // CHECK:STDOUT: %.loc12_8.3: %C = acquire_value %.loc12_8.2 [concrete = constants.%C.val] // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.specific_fn(%.loc12_8.3) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.115) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_8.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_8.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12_8.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12_8.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon b/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon index 19abe87437df..b8016b0b5bfc 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon @@ -149,9 +149,9 @@ fn F[A: J, B: A](x: C(A, B)) { // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] // CHECK:STDOUT: %.4ea: ref %Goat = temporary invalid, %Goat.val [concrete] // CHECK:STDOUT: %.544: type = fn_type_with_self_type %Eats.WithSelf.Eat.type.067, %Eats.facet [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc26_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.4ea, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc26_8.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.4ea, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -196,7 +196,7 @@ fn F[A: J, B: A](x: C(A, B)) { // CHECK:STDOUT: %.loc26_8.2: ref %Goat = temporary %.loc26_6.2, %.loc26_8.1 [concrete = constants.%.4ea] // CHECK:STDOUT: %Bleet.ref.loc26: %Goat.Bleet.type = name_ref Bleet, @Goat.%Goat.Bleet.decl [concrete = constants.%Goat.Bleet] // CHECK:STDOUT: %Goat.Bleet.call.loc26: init %empty_tuple.type = call %Bleet.ref.loc26() -// CHECK:STDOUT: %Destroy.Op.call.loc26: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.4ea) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc26: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.4ea) // CHECK:STDOUT: %.loc27_6.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Goat.ref.loc27_11: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] // CHECK:STDOUT: %.loc27_6.2: ref %Goat = temporary_storage @@ -212,14 +212,14 @@ fn F[A: J, B: A](x: C(A, B)) { // CHECK:STDOUT: %Eat.ref.loc27: %Eats.assoc_type = name_ref Eat, @Eats.WithSelf.%assoc0 [concrete = constants.%assoc0.12f] // CHECK:STDOUT: %impl.elem0.loc27: %.544 = impl_witness_access constants.%Eats.impl_witness, element0 [concrete = constants.%Goat.as.Eats.impl.Eat] // CHECK:STDOUT: %Goat.as.Eats.impl.Eat.call.loc27: init %empty_tuple.type = call %impl.elem0.loc27() -// CHECK:STDOUT: %Destroy.Op.call.loc27: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.4ea) -// CHECK:STDOUT: %Destroy.Op.call.loc22: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.4ea) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc27: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.4ea) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc22: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.4ea) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_8.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_8.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_8.2(%self.param: ref %Goat) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_8.2(%self.param: ref %Goat) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon index dca7d8efb69c..1a775af8c3c1 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon @@ -138,12 +138,12 @@ fn F() { // CHECK:STDOUT: %.4ea: ref %Goat = temporary invalid, %Goat.val [concrete] // CHECK:STDOUT: %.202: ref %Grass = temporary invalid, %Grass.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc35_31.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.a54: = bound_method %.202, %Destroy.Op.1a2547.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc35_19 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.115: = bound_method %.4ea, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc35_31.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.af9: = bound_method %.202, %Destroy.WithSelf.Op.403171.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc35_19 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.c34: = bound_method %.4ea, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: %Eats.type.682: type = facet_type <@Eats, @Eats(%Grass)> [concrete] // CHECK:STDOUT: %.6da: = impl_self_witness %Goat, @Eats, @Eats(%Grass) [concrete] // CHECK:STDOUT: %Eats.impl_witness.86c: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] @@ -492,19 +492,19 @@ fn F() { // CHECK:STDOUT: %.loc35_31.2: ref %Grass = temporary %.loc35_29.2, %.loc35_31.1 [concrete = constants.%.202] // CHECK:STDOUT: %.loc35_31.3: %Grass = acquire_value %.loc35_31.2 [concrete = constants.%Grass.val] // CHECK:STDOUT: %HandleAnimal.call: init %empty_tuple.type = call %HandleAnimal.specific_fn(%.loc35_19.3, %.loc35_31.3) -// CHECK:STDOUT: %Destroy.Op.call.loc35_31: init %empty_tuple.type = call constants.%Destroy.Op.bound.a54(constants.%.202) -// CHECK:STDOUT: %Destroy.Op.call.loc35_19: init %empty_tuple.type = call constants.%Destroy.Op.bound.115(constants.%.4ea) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc35_31: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.af9(constants.%.202) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc35_19: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.c34(constants.%.4ea) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_31.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_31.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_31.2(%self.param: ref %Grass) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_31.2(%self.param: ref %Grass) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_19(%self.param: ref %Goat) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc35_19(%self.param: ref %Goat) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon index ba8c4e88ceaf..a5afa48f8fdf 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon @@ -63,9 +63,9 @@ fn F() { // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: %.4ea: ref %Goat = temporary invalid, %Goat.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc25_19.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.4ea, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc25_19.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.4ea, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: %a.patt.fd6628.2: %pattern_type.283 = wrapper_binding_pattern a, %a.param_patt.8f5 [concrete] // CHECK:STDOUT: %FeedAnimal.specific_fn.99a: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } @@ -220,13 +220,13 @@ fn F() { // CHECK:STDOUT: %.loc25_19.2: ref %Goat = temporary %.loc25_17.2, %.loc25_19.1 [concrete = constants.%.4ea] // CHECK:STDOUT: %.loc25_19.3: %Goat = acquire_value %.loc25_19.2 [concrete = constants.%Goat.val] // CHECK:STDOUT: %HandleAnimal.call: init %empty_tuple.type = call %HandleAnimal.specific_fn(%.loc25_19.3) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.4ea) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.4ea) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_19.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_19.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_19.2(%self.param: ref %Goat) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_19.2(%self.param: ref %Goat) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon b/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon index a76cc1737400..128b7ad22d6f 100644 --- a/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon +++ b/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon @@ -104,8 +104,8 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom // CHECK:STDOUT: %x.patt.755: %pattern_type.905 = wrapper_binding_pattern x, %x.param_patt.fbd [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc40_19.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc40_19.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -309,15 +309,15 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom // CHECK:STDOUT: %.loc40_19.5: %empty_tuple.type = call %F.specific_fn(%holds_to.ref) // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc40_19.6: %empty_tuple.type = converted %.loc40_19.5, %empty_tuple [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc40_19.3, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc40_19.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc40_19.3, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc40_19.3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc40_19.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc40_19.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc40_19.2(%self.param: ref %RuntimeConvertTo) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc40_19.2(%self.param: ref %RuntimeConvertTo) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index ae4ef85e1398..73a0fb7a0361 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -1027,8 +1027,8 @@ fn Read(generic y: Core.IntLiteral) { // CHECK:STDOUT: %bound_method: = bound_method %y, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method(%y) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc5_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc5_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1135,8 +1135,8 @@ fn Read(generic y: Core.IntLiteral) { // CHECK:STDOUT: %x.patt: %pattern_type.0f3 = ref_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: %x.var_patt: %pattern_type.0f3 = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1172,19 +1172,19 @@ fn Read(generic y: Core.IntLiteral) { // CHECK:STDOUT: // CHECK:STDOUT: fn @Range [from "lib.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_3.3(%self.param: ref %struct_type.start.end.e93) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_3.3(%self.param: ref %struct_type.start.end.e93) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_3.4(%self.param: ref %IntRange.bbd) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_3.4(%self.param: ref %IntRange.bbd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/for/basic.carbon b/toolchain/check/testdata/for/basic.carbon index b294da1f83b9..403cdeb67546 100644 --- a/toolchain/check/testdata/for/basic.carbon +++ b/toolchain/check/testdata/for/basic.carbon @@ -99,13 +99,13 @@ fn Run() { // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.Next.bound: = bound_method %.50e, %TrivialRange.as.Iterate.impl.Next [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.3ad, @Optional.HasValue(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.20b, @Optional.Get(%Copy.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc18_35.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc18_35.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc18_20.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.50e, %Destroy.Op.1a2547.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc18_35.1 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc18_35.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc18_20.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.50e, %Destroy.WithSelf.Op.403171.6 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Copy.impl.Op.type: type = fn_type @empty_tuple.type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Copy.impl.Op: %empty_tuple.type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -176,40 +176,40 @@ fn Run() { // CHECK:STDOUT: %_: %empty_tuple.type = wrapper_binding _, %.loc18_35.11 // CHECK:STDOUT: %Body.ref: %Body.type = name_ref Body, file.%Body.decl [concrete = constants.%Body] // CHECK:STDOUT: %Body.call: init %empty_tuple.type = call %Body.ref() -// CHECK:STDOUT: %Destroy.Op.bound.loc18_35.1: = bound_method %.loc18_35.10, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc18_35.1: init %empty_tuple.type = call %Destroy.Op.bound.loc18_35.1(%.loc18_35.10) -// CHECK:STDOUT: %Destroy.Op.bound.loc18_35.2: = bound_method %.loc18_35.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc18_35.2: init %empty_tuple.type = call %Destroy.Op.bound.loc18_35.2(%.loc18_35.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18_35.1: = bound_method %.loc18_35.10, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18_35.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18_35.1(%.loc18_35.10) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18_35.2: = bound_method %.loc18_35.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18_35.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18_35.2(%.loc18_35.2) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc18_35.3: = bound_method %.loc18_35.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc18_35.3: init %empty_tuple.type = call %Destroy.Op.bound.loc18_35.3(%.loc18_35.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc18_35.4: = bound_method %var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc18_35.4: init %empty_tuple.type = call %Destroy.Op.bound.loc18_35.4(%var) -// CHECK:STDOUT: %Destroy.Op.call.loc18_20: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.50e) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18_35.3: = bound_method %.loc18_35.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18_35.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18_35.3(%.loc18_35.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18_35.4: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18_35.4: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18_35.4(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18_20: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.50e) // CHECK:STDOUT: %AfterLoop.ref: %AfterLoop.type = name_ref AfterLoop, file.%AfterLoop.decl [concrete = constants.%AfterLoop] // CHECK:STDOUT: %AfterLoop.call: init %empty_tuple.type = call %AfterLoop.ref() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_35.1(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_35.1(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_35.2(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_35.2(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_35.3(%self.param: ref %struct_type.has_value.value.da2) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_35.3(%self.param: ref %struct_type.has_value.value.da2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_35.4(%self.param: ref %Optional.0cb) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_35.4(%self.param: ref %Optional.0cb) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_20.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_20.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_20.2(%self.param: ref %TrivialRange) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_20.2(%self.param: ref %TrivialRange) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/for/pattern.carbon b/toolchain/check/testdata/for/pattern.carbon index c63c9a5a7e6d..7f1de86762d5 100644 --- a/toolchain/check/testdata/for/pattern.carbon +++ b/toolchain/check/testdata/for/pattern.carbon @@ -170,14 +170,14 @@ fn Run() { // CHECK:STDOUT: %struct_type.has_value.value.9e7: type = struct_type {.has_value: bool, .value: %C} [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.45e, @Optional.HasValue(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.dc7, @Optional.Get(%Copy.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc10_36.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_36.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc10_36.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc10_35 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc10_36.1 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_36.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc10_36.5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc10_35 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op: %C.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -260,42 +260,42 @@ fn Run() { // CHECK:STDOUT: %Body.ref: %Body.type = name_ref Body, file.%Body.decl [concrete = constants.%Body] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %Body.call: init %empty_tuple.type = call %Body.ref(%c.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_36.1: = bound_method %.loc10_36.10, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc10_36.1: init %empty_tuple.type = call %Destroy.Op.bound.loc10_36.1(%.loc10_36.10) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_36.2: = bound_method %.loc10_36.2, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc10_36.2: init %empty_tuple.type = call %Destroy.Op.bound.loc10_36.2(%.loc10_36.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_36.1: = bound_method %.loc10_36.10, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_36.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_36.1(%.loc10_36.10) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_36.2: = bound_method %.loc10_36.2, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_36.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_36.2(%.loc10_36.2) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc10_36.3: = bound_method %.loc10_36.2, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc10_36.3: init %empty_tuple.type = call %Destroy.Op.bound.loc10_36.3(%.loc10_36.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_36.4: = bound_method %var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc10_36.4: init %empty_tuple.type = call %Destroy.Op.bound.loc10_36.4(%var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_35: = bound_method %.loc10_35.2, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc10_35: init %empty_tuple.type = call %Destroy.Op.bound.loc10_35(%.loc10_35.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_36.3: = bound_method %.loc10_36.2, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_36.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_36.3(%.loc10_36.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_36.4: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_36.4: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_36.4(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_35: = bound_method %.loc10_35.2, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_35: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_35(%.loc10_35.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_36.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_36.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_36.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_36.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_36.3(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_36.3(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_36.4(%self.param: ref %struct_type.has_value.value.9e7) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_36.4(%self.param: ref %struct_type.has_value.value.9e7) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_36.5(%self.param: ref %Optional.0e3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_36.5(%self.param: ref %Optional.0e3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_35(%self.param: ref %EmptyRange.b10) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_35(%self.param: ref %EmptyRange.b10) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -354,14 +354,14 @@ fn Run() { // CHECK:STDOUT: %struct_type.has_value.value.9e7: type = struct_type {.has_value: bool, .value: %C} [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.45e, @Optional.HasValue(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.dc7, @Optional.Get(%Copy.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_40.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc10_40.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc10_40.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc10_39 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_40.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc10_40.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc10_40.5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc10_39 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op: %C.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -446,44 +446,44 @@ fn Run() { // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c // CHECK:STDOUT: %addr.loc11: %ptr.6b6 = addr_of %c.ref // CHECK:STDOUT: %Body.call: init %empty_tuple.type = call %Body.ref(%addr.loc11) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_40.1: = bound_method %.loc10_40.2, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc10_40.1: init %empty_tuple.type = call %Destroy.Op.bound.loc10_40.1(%.loc10_40.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_8.1: = bound_method %c.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc10_8.1: init %empty_tuple.type = call %Destroy.Op.bound.loc10_8.1(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_40.1: = bound_method %.loc10_40.2, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_40.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_40.1(%.loc10_40.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_8.1: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_8.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_8.1(%c.var) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc10_40.2: = bound_method %.loc10_40.2, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc10_40.2: init %empty_tuple.type = call %Destroy.Op.bound.loc10_40.2(%.loc10_40.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_8.2: = bound_method %c.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc10_8.2: init %empty_tuple.type = call %Destroy.Op.bound.loc10_8.2(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_40.3: = bound_method %var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc10_40.3: init %empty_tuple.type = call %Destroy.Op.bound.loc10_40.3(%var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_39: = bound_method %.loc10_39.2, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc10_39: init %empty_tuple.type = call %Destroy.Op.bound.loc10_39(%.loc10_39.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_40.2: = bound_method %.loc10_40.2, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_40.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_40.2(%.loc10_40.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_8.2: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_8.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_8.2(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_40.3: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_40.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_40.3(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_39: = bound_method %.loc10_39.2, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_39: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_39(%.loc10_39.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_40.1(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_40.1(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_40.2(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_40.2(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_40.3(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_40.3(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_40.4(%self.param: ref %struct_type.has_value.value.9e7) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_40.4(%self.param: ref %struct_type.has_value.value.9e7) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_40.5(%self.param: ref %Optional.0e3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_40.5(%self.param: ref %Optional.0e3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_39(%self.param: ref %EmptyRange.b10) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_39(%self.param: ref %EmptyRange.b10) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -550,14 +550,14 @@ fn Run() { // CHECK:STDOUT: %struct_type.has_value.value.6f9: type = struct_type {.has_value: bool, .value: %tuple.type.784} [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.55e, @Optional.HasValue(%Copy.facet.701) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.018, @Optional.Get(%Copy.facet.701) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_61.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc10_61.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc10_61.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc10_60 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_61.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc10_61.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc10_61.5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc10_60 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -651,42 +651,42 @@ fn Run() { // CHECK:STDOUT: %a.ref: bool = name_ref a, %a // CHECK:STDOUT: %b.ref: bool = name_ref b, %b // CHECK:STDOUT: %Body.call: init %empty_tuple.type = call %Body.ref(%a.ref, %b.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_61.1: = bound_method %.loc10_61.10, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc10_61.1: init %empty_tuple.type = call %Destroy.Op.bound.loc10_61.1(%.loc10_61.10) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_61.2: = bound_method %.loc10_61.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc10_61.2: init %empty_tuple.type = call %Destroy.Op.bound.loc10_61.2(%.loc10_61.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_61.1: = bound_method %.loc10_61.10, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_61.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_61.1(%.loc10_61.10) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_61.2: = bound_method %.loc10_61.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_61.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_61.2(%.loc10_61.2) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc10_61.3: = bound_method %.loc10_61.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc10_61.3: init %empty_tuple.type = call %Destroy.Op.bound.loc10_61.3(%.loc10_61.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_61.4: = bound_method %var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc10_61.4: init %empty_tuple.type = call %Destroy.Op.bound.loc10_61.4(%var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_60: = bound_method %.loc10_60.2, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc10_60: init %empty_tuple.type = call %Destroy.Op.bound.loc10_60(%.loc10_60.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_61.3: = bound_method %.loc10_61.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_61.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_61.3(%.loc10_61.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_61.4: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_61.4: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_61.4(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_60: = bound_method %.loc10_60.2, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_60: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_60(%.loc10_60.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_61.1(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_61.1(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_61.2(%self.param: ref %tuple.type.784) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_61.2(%self.param: ref %tuple.type.784) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_61.3(%self.param: ref %struct_type.has_value.value.6f9) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_61.3(%self.param: ref %struct_type.has_value.value.6f9) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_61.4(%self.param: ref %Optional.4d1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_61.4(%self.param: ref %Optional.4d1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_61.5(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_61.5(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_60(%self.param: ref %EmptyRange.d81) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_60(%self.param: ref %EmptyRange.d81) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -754,14 +754,14 @@ fn Run() { // CHECK:STDOUT: %struct_type.has_value.value.9b1: type = struct_type {.has_value: bool, .value: %tuple.type.748} [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.b06, @Optional.HasValue(%Copy.facet.38c) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.091, @Optional.Get(%Copy.facet.38c) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc10_49.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc10_49.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc10_49.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc10_48 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc10_49.1 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc10_49.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc10_49.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc10_48 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op: %C.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -856,47 +856,47 @@ fn Run() { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %Body.call: init %empty_tuple.type = call %Body.ref(%a.ref, %b.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_49.1: = bound_method %.loc10_49.10, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc10_49.1: init %empty_tuple.type = call %Destroy.Op.bound.loc10_49.1(%.loc10_49.10) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_49.2: = bound_method %.loc10_49.2, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc10_49.2: init %empty_tuple.type = call %Destroy.Op.bound.loc10_49.2(%.loc10_49.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_49.1: = bound_method %.loc10_49.10, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_49.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_49.1(%.loc10_49.10) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_49.2: = bound_method %.loc10_49.2, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_49.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_49.2(%.loc10_49.2) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc10_49.3: = bound_method %.loc10_49.2, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc10_49.3: init %empty_tuple.type = call %Destroy.Op.bound.loc10_49.3(%.loc10_49.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_49.4: = bound_method %var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc10_49.4: init %empty_tuple.type = call %Destroy.Op.bound.loc10_49.4(%var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_48: = bound_method %.loc10_48.2, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc10_48: init %empty_tuple.type = call %Destroy.Op.bound.loc10_48(%.loc10_48.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_49.3: = bound_method %.loc10_49.2, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_49.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_49.3(%.loc10_49.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_49.4: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_49.4: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_49.4(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10_48: = bound_method %.loc10_48.2, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_48: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10_48(%.loc10_48.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_49.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_49.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_49.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_49.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_49.3(%self.param: ref %tuple.type.748) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_49.3(%self.param: ref %tuple.type.748) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_49.4(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_49.4(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_49.5(%self.param: ref %struct_type.has_value.value.9b1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_49.5(%self.param: ref %struct_type.has_value.value.9b1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_49.6(%self.param: ref %Optional.992) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_49.6(%self.param: ref %Optional.992) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_48(%self.param: ref %EmptyRange.8d3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_48(%self.param: ref %EmptyRange.8d3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/alias.carbon b/toolchain/check/testdata/function/call/alias.carbon index df9bf3829373..7cc9b98321a7 100644 --- a/toolchain/check/testdata/function/call/alias.carbon +++ b/toolchain/check/testdata/function/call/alias.carbon @@ -36,8 +36,8 @@ fn Main() { // CHECK:STDOUT: %b.patt: %pattern_type.cb1 = ref_binding_pattern b [concrete] // CHECK:STDOUT: %b.var_patt: %pattern_type.cb1 = var_pattern %b.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc20 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -95,10 +95,10 @@ fn Main() { // CHECK:STDOUT: %b.patt: %pattern_type.cb1 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.cb1 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%b.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon index 4de5e0643e77..ec53e6e5fe5c 100644 --- a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon +++ b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon @@ -67,8 +67,8 @@ fn Run() { // CHECK:STDOUT: %x.patt: %pattern_type.6b6 = ref_binding_pattern x [concrete] // CHECK:STDOUT: %x.var_patt: %pattern_type.6b6 = var_pattern %x.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc25_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc25_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -132,14 +132,14 @@ fn Run() { // CHECK:STDOUT: %x.patt: %pattern_type.6b6 = ref_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: %x.var_patt: %pattern_type.6b6 = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/form.carbon b/toolchain/check/testdata/function/call/form.carbon index b539528b7a38..1bb3ba275d52 100644 --- a/toolchain/check/testdata/function/call/form.carbon +++ b/toolchain/check/testdata/function/call/form.carbon @@ -358,8 +358,8 @@ fn G() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc4_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc4_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -398,14 +398,14 @@ fn G() { // CHECK:STDOUT: %x.var: ref %i32 = var_storage @F.%x.var_patt // CHECK:STDOUT: assign %x.var, %.loc4 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref(%x.var) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc4_7.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc4_7.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc4_7.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc4_7.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -563,8 +563,8 @@ fn G() { // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %_.patt: %pattern_type.6b6 = ref_binding_pattern _ [concrete] // CHECK:STDOUT: %_.var_patt: %pattern_type.6b6 = var_pattern %_.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc9_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc9_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -594,14 +594,14 @@ fn G() { // CHECK:STDOUT: %_.patt: %pattern_type.6b6 = ref_binding_pattern _ [concrete = constants.%_.patt] // CHECK:STDOUT: %_.var_patt: %pattern_type.6b6 = var_pattern %_.patt [concrete = constants.%_.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %_.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%_.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %_.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%_.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_7.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_7.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_7.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_7.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -763,16 +763,16 @@ fn G() { // CHECK:STDOUT: %F.specific_fn.2f1: = specific_function %F, @F(%.c2a) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Self.0e7: %Destroy.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self.0e7) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Self.0e7) [symbolic] // CHECK:STDOUT: %Destroy.WithSelf.Op.42b: %Destroy.WithSelf.Op.type.d3e = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.assoc_type: type = assoc_entity_type @Destroy [concrete] // CHECK:STDOUT: %assoc0.ae8: %Destroy.assoc_type = assoc_entity element0, imports.%Core.import_ref.918 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.2: = custom_witness (%Destroy.Op.1a2547.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.d07: %Destroy.type = facet_value %i32, (%custom_witness.df9cc1.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.47a: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.d07) [concrete] -// CHECK:STDOUT: %.22e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.47a, %Destroy.facet.d07 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.2: = custom_witness (%Destroy.WithSelf.Op.403171.2), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.6de: %Destroy.type = facet_value %i32, (%custom_witness.6c4ec3.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.170: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.6de) [concrete] +// CHECK:STDOUT: %.d91: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.170, %Destroy.facet.6de [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -922,19 +922,19 @@ fn G() { // CHECK:STDOUT: %z.patt: %pattern_type.6b6 = value_binding_pattern z [concrete = constants.%z.patt] // CHECK:STDOUT: } // CHECK:STDOUT: %Op.ref: %Destroy.assoc_type = name_ref Op, imports.%Core.import_ref.c64 [concrete = constants.%assoc0.ae8] -// CHECK:STDOUT: %impl.elem0.1: %.22e = impl_witness_access constants.%custom_witness.df9cc1.2, element0 [concrete = constants.%Destroy.Op.1a2547.2] +// CHECK:STDOUT: %impl.elem0.1: %.d91 = impl_witness_access constants.%custom_witness.6c4ec3.2, element0 [concrete = constants.%Destroy.WithSelf.Op.403171.2] // CHECK:STDOUT: %bound_method.1: = bound_method %v.var.1, %impl.elem0.1 -// CHECK:STDOUT: %Destroy.Op.call.1: init %empty_tuple.type = call %bound_method.1(%v.var.1) -// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %x.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call %Destroy.Op.bound.loc13(%x.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %v.var.loc11, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%v.var.loc11) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.1: init %empty_tuple.type = call %bound_method.1(%v.var.1) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc13: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc13(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %v.var.loc11, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%v.var.loc11) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.2(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.3(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index 4a4465a20752..7a4dbefc95d5 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -70,8 +70,8 @@ fn Main() { // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc20_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -148,14 +148,14 @@ fn Main() { // CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%b.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/more_param_ir.carbon b/toolchain/check/testdata/function/call/more_param_ir.carbon index 7b7923afd1c9..a8121e671e76 100644 --- a/toolchain/check/testdata/function/call/more_param_ir.carbon +++ b/toolchain/check/testdata/function/call/more_param_ir.carbon @@ -70,8 +70,8 @@ fn Main() { // CHECK:STDOUT: %bound_method.be9: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_6.439: %i32 = int_value 6 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc18_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc18_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -155,19 +155,19 @@ fn Main() { // CHECK:STDOUT: %.loc20_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_6.439] // CHECK:STDOUT: %.loc20_12.2: %i32 = converted %int_6, %.loc20_12.1 [concrete = constants.%int_6.439] // CHECK:STDOUT: %Foo.call: init %empty_tuple.type = call %Foo.ref(%.loc20_8, %.loc20_12.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.3(%self.param: ref %tuple.type.a8a) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.3(%self.param: ref %tuple.type.a8a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/ref.carbon b/toolchain/check/testdata/function/call/ref.carbon index 38b7018efe77..2271a9aeb6d0 100644 --- a/toolchain/check/testdata/function/call/ref.carbon +++ b/toolchain/check/testdata/function/call/ref.carbon @@ -142,8 +142,8 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -186,14 +186,14 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: %y.ref: ref %i32 = name_ref y, %y // CHECK:STDOUT: %.loc10: %i32 = ref_tag %y.ref // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref(%y.ref) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %y.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%y.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %y.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%y.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -220,8 +220,8 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.impl_witness.38f: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.856, @T.as.DefaultOrUnformed.impl(%C) [concrete] // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.38f) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -274,14 +274,14 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, @C.%C.F.decl [concrete = constants.%C.F] // CHECK:STDOUT: %C.F.bound: = bound_method %c.ref, %F.ref // CHECK:STDOUT: %C.F.call: init %empty_tuple.type = call %C.F.bound(%c.ref) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%c.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/return_implicit.carbon b/toolchain/check/testdata/function/call/return_implicit.carbon index f25f087869ce..aca0eebf6281 100644 --- a/toolchain/check/testdata/function/call/return_implicit.carbon +++ b/toolchain/check/testdata/function/call/return_implicit.carbon @@ -32,8 +32,8 @@ fn Main() { // CHECK:STDOUT: %b.patt: %pattern_type.cb1 = ref_binding_pattern b [concrete] // CHECK:STDOUT: %b.var_patt: %pattern_type.cb1 = var_pattern %b.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc19 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -76,10 +76,10 @@ fn Main() { // CHECK:STDOUT: %b.patt: %pattern_type.cb1 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.cb1 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%b.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon index 0c0a4ecc9b1f..632ba91e20b0 100644 --- a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon @@ -219,8 +219,8 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc33_17.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc33_17.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %ReturnDUsed.type: type = fn_type @ReturnDUsed [concrete] // CHECK:STDOUT: %ReturnDUsed: %ReturnDUsed.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -279,14 +279,14 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %.loc33_17.1: ref %D = temporary_storage // CHECK:STDOUT: %ReturnDUnused.call: init %D to %.loc33_17.1 = call %ReturnDUnused.ref() // CHECK:STDOUT: %.loc33_17.2: ref %D = temporary %.loc33_17.1, %ReturnDUnused.call -// CHECK:STDOUT: %Destroy.Op.bound.loc33: = bound_method %.loc33_17.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc33: init %empty_tuple.type = call %Destroy.Op.bound.loc33(%.loc33_17.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc33: = bound_method %.loc33_17.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc33: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc33(%.loc33_17.2) // CHECK:STDOUT: %ReturnDUsed.ref: %ReturnDUsed.type = name_ref ReturnDUsed, imports.%Main.ReturnDUsed [concrete = constants.%ReturnDUsed] // CHECK:STDOUT: %.loc34_15.1: ref %D = temporary_storage // CHECK:STDOUT: %ReturnDUsed.call: init %D to %.loc34_15.1 = call %ReturnDUsed.ref() // CHECK:STDOUT: %.loc34_15.2: ref %D = temporary %.loc34_15.1, %ReturnDUsed.call -// CHECK:STDOUT: %Destroy.Op.bound.loc34: = bound_method %.loc34_15.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc34: init %empty_tuple.type = call %Destroy.Op.bound.loc34(%.loc34_15.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc34: = bound_method %.loc34_15.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc34: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc34(%.loc34_15.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -296,9 +296,9 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: // CHECK:STDOUT: fn @ReturnDUnused [from "fail_incomplete_return.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc33_17.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc33_17.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc33_17.2(%self.param: ref %D) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc33_17.2(%self.param: ref %D) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index 41e41cbc3070..4ce6305e3cb3 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -609,9 +609,9 @@ fn F() { // CHECK:STDOUT: %A.val: %A = struct_value () [concrete] // CHECK:STDOUT: %.367: ref %A = temporary invalid, %A.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc11_37.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.367, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc11_37.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.367, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: %complete_type.a75: = complete_type_witness %ptr.d43 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -714,13 +714,13 @@ fn F() { // CHECK:STDOUT: %.loc11_37.5: ref %A = temporary %.loc11_37.2, %.loc11_37.4 [concrete = constants.%.367] // CHECK:STDOUT: %.loc11_37.6: %A = acquire_value %.loc11_37.5 [concrete = constants.%A.val] // CHECK:STDOUT: %ExplicitAndAlsoDeduced.call: init %ptr.d43 = call %ExplicitAndAlsoDeduced.specific_fn(%.loc11_37.6) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.367) // CHECK:STDOUT: return %ExplicitAndAlsoDeduced.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_37.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_37.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_37.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_37.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/resolve_used.carbon b/toolchain/check/testdata/function/generic/resolve_used.carbon index 425f99574192..5c0dcb409452 100644 --- a/toolchain/check/testdata/function/generic/resolve_used.carbon +++ b/toolchain/check/testdata/function/generic/resolve_used.carbon @@ -71,10 +71,10 @@ fn CallNegative() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness.173: = lookup_impl_witness %Int, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.7bb: %Destroy.type = facet_value %Int, (%Destroy.lookup_impl_witness.173) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.8f1: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.7bb) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.8f1: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.7bb) [symbolic] // CHECK:STDOUT: %.2c6: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.8f1, %Destroy.facet.7bb [symbolic] // CHECK:STDOUT: %impl.elem0.604: %.2c6 = impl_witness_access %Destroy.lookup_impl_witness.173, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.693: = specific_impl_function %impl.elem0.604, @Destroy.WithSelf.Op(%Destroy.facet.7bb) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.693: = specific_impl_function %impl.elem0.604, @Destroy.WithSelf.Op.1(%Destroy.facet.7bb) [symbolic] // CHECK:STDOUT: %CallNegative.type: type = fn_type @CallNegative [concrete] // CHECK:STDOUT: %CallNegative: %CallNegative.type = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] @@ -91,12 +91,12 @@ fn CallNegative() { // CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.2b9: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.6c8) [concrete] // CHECK:STDOUT: %.b06: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.2b9, %DefaultOrUnformed.facet.6c8 [concrete] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.38a, @T.as.DefaultOrUnformed.impl.Op(%i0) [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9: = custom_witness (%Destroy.Op), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.85b: %Destroy.type = facet_value %i0, (%custom_witness.df9) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.b7e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.85b) [concrete] -// CHECK:STDOUT: %.338: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.b7e, %Destroy.facet.85b [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc9 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4: = custom_witness (%Destroy.WithSelf.Op.403), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.7b8: %Destroy.type = facet_value %i0, (%custom_witness.6c4) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.fbf: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.7b8) [concrete] +// CHECK:STDOUT: %.c2e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.fbf, %Destroy.facet.7b8 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -155,10 +155,10 @@ fn CallNegative() { // CHECK:STDOUT: %specific_impl_fn.loc9_28.2: = specific_impl_function %impl.elem0.loc9_28.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc9_28.2) [symbolic = %specific_impl_fn.loc9_28.2 (constants.%specific_impl_fn.cf5)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc9_27.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.173)] // CHECK:STDOUT: %Destroy.facet.loc9_3.3: %Destroy.type = facet_value %Int.loc9_27.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc9_3.3 (constants.%Destroy.facet.7bb)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc9_3.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.8f1)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.loc9_3.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.8f1)] // CHECK:STDOUT: %.loc9_3.3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc9_3.3 [symbolic = %.loc9_3.3 (constants.%.2c6)] // CHECK:STDOUT: %impl.elem0.loc9_3.2: @ErrorIfNIsZero.%.loc9_3.3 (%.2c6) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_3.2 (constants.%impl.elem0.604)] -// CHECK:STDOUT: %specific_impl_fn.loc9_3.2: = specific_impl_function %impl.elem0.loc9_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc9_3.3) [symbolic = %specific_impl_fn.loc9_3.2 (constants.%specific_impl_fn.693)] +// CHECK:STDOUT: %specific_impl_fn.loc9_3.2: = specific_impl_function %impl.elem0.loc9_3.2, @Destroy.WithSelf.Op.1(%Destroy.facet.loc9_3.3) [symbolic = %specific_impl_fn.loc9_3.2 (constants.%specific_impl_fn.693)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -188,7 +188,7 @@ fn CallNegative() { // CHECK:STDOUT: %.loc9_3.1: %Destroy.type = converted constants.%Int, %Destroy.facet.loc9_3.1 [symbolic = %Destroy.facet.loc9_3.3 (constants.%Destroy.facet.7bb)] // CHECK:STDOUT: %Destroy.facet.loc9_3.2: %Destroy.type = facet_value constants.%Int, (constants.%Destroy.lookup_impl_witness.173) [symbolic = %Destroy.facet.loc9_3.3 (constants.%Destroy.facet.7bb)] // CHECK:STDOUT: %.loc9_3.2: %Destroy.type = converted constants.%Int, %Destroy.facet.loc9_3.2 [symbolic = %Destroy.facet.loc9_3.3 (constants.%Destroy.facet.7bb)] -// CHECK:STDOUT: %specific_impl_fn.loc9_3.1: = specific_impl_function %impl.elem0.loc9_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.7bb) [symbolic = %specific_impl_fn.loc9_3.2 (constants.%specific_impl_fn.693)] +// CHECK:STDOUT: %specific_impl_fn.loc9_3.1: = specific_impl_function %impl.elem0.loc9_3.1, @Destroy.WithSelf.Op.1(constants.%Destroy.facet.7bb) [symbolic = %specific_impl_fn.loc9_3.2 (constants.%specific_impl_fn.693)] // CHECK:STDOUT: %bound_method.loc9_3.2: = bound_method %v.var, %specific_impl_fn.loc9_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc9_3.2(%v.var) // CHECK:STDOUT: return @@ -204,7 +204,7 @@ fn CallNegative() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %i0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9(%self.param: ref %i0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -231,11 +231,11 @@ fn CallNegative() { // CHECK:STDOUT: %.loc9_28.4 => constants.%.b06 // CHECK:STDOUT: %impl.elem0.loc9_28.2 => constants.%T.as.DefaultOrUnformed.impl.Op.38a // CHECK:STDOUT: %specific_impl_fn.loc9_28.2 => constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9 -// CHECK:STDOUT: %Destroy.facet.loc9_3.3 => constants.%Destroy.facet.85b -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b7e -// CHECK:STDOUT: %.loc9_3.3 => constants.%.338 -// CHECK:STDOUT: %impl.elem0.loc9_3.2 => constants.%Destroy.Op -// CHECK:STDOUT: %specific_impl_fn.loc9_3.2 => constants.%Destroy.Op +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4 +// CHECK:STDOUT: %Destroy.facet.loc9_3.3 => constants.%Destroy.facet.7b8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.fbf +// CHECK:STDOUT: %.loc9_3.3 => constants.%.c2e +// CHECK:STDOUT: %impl.elem0.loc9_3.2 => constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %specific_impl_fn.loc9_3.2 => constants.%Destroy.WithSelf.Op.403 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/return_slot.carbon b/toolchain/check/testdata/function/generic/return_slot.carbon index 52ed1c92fb31..3e3f3754b434 100644 --- a/toolchain/check/testdata/function/generic/return_slot.carbon +++ b/toolchain/check/testdata/function/generic/return_slot.carbon @@ -92,12 +92,12 @@ fn G() { // CHECK:STDOUT: %return.patt.e4a: %pattern_type.98b = return_slot_pattern %return.param_patt.89a, %C [concrete] // CHECK:STDOUT: %Wrap.Make.specific_fn.c96: = specific_function %Wrap.Make.83f, @Wrap.Make(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc24_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc24_3.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc23 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc24_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc24_3.5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc23 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.782: = complete_type_witness %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -251,38 +251,38 @@ fn G() { // CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt] // CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %c.var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc24: init %empty_tuple.type = call %Destroy.Op.bound.loc24(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc23: = bound_method %b.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc23: init %empty_tuple.type = call %Destroy.Op.bound.loc23(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc22: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc22: init %empty_tuple.type = call %Destroy.Op.bound.loc22(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc24: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc24(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc23: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc23: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc23(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc22: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc22: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc22(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.4(%self.param: ref %struct_type.arr.fdc) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.4(%self.param: ref %struct_type.arr.fdc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.5(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.5(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%T) { // CHECK:STDOUT: %T.patt.loc15_13.2 => constants.%T.patt diff --git a/toolchain/check/testdata/generic/local.carbon b/toolchain/check/testdata/generic/local.carbon index b38355ec66da..3f452ee4272d 100644 --- a/toolchain/check/testdata/generic/local.carbon +++ b/toolchain/check/testdata/generic/local.carbon @@ -99,8 +99,8 @@ class C(C: type) { // CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %C.val: %C.8eb = struct_value (%int_1.0c6) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc8_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc8_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -187,24 +187,24 @@ class C(C: type) { // CHECK:STDOUT: %v.patt: %pattern_type.1f3 = ref_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: %v.var_patt: %pattern_type.1f3 = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %struct_type.x.a15) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %struct_type.x.a15) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.4(%self.param: ref %C.8eb) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.4(%self.param: ref %C.8eb) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/generic/var_param.carbon b/toolchain/check/testdata/generic/var_param.carbon index 50a5b369664a..bced11e5253d 100644 --- a/toolchain/check/testdata/generic/var_param.carbon +++ b/toolchain/check/testdata/generic/var_param.carbon @@ -66,8 +66,8 @@ fn Test(x: i32) { // CHECK:STDOUT: %Copy.WithSelf.Op.type.381: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc22_24.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc22_24.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -130,14 +130,14 @@ fn Test(x: i32) { // CHECK:STDOUT: %x.var: ref %i32 = var_storage @TestOp.%x.param_patt.loc22_24.1 // CHECK:STDOUT: assign %x.var, %Int.as.Copy.impl.Op.call // CHECK:STDOUT: %TestOp.call: init %empty_tuple.type = call %TestOp.specific_fn(%x.var) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_24.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_24.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_24.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_24.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/if/lifetime.carbon b/toolchain/check/testdata/if/lifetime.carbon index 1dc9eb6d2011..78b1d44aa03c 100644 --- a/toolchain/check/testdata/if/lifetime.carbon +++ b/toolchain/check/testdata/if/lifetime.carbon @@ -42,8 +42,8 @@ fn F() { // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc14_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc14_12.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -56,8 +56,8 @@ fn F() { // CHECK:STDOUT: %A.F.call: init bool = call %F.ref() // CHECK:STDOUT: %.loc14_17.1: bool = value_of_initializer %A.F.call // CHECK:STDOUT: %.loc14_17.2: bool = converted %A.F.call, %.loc14_17.1 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc14_12.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc14_12.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc14_12.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc14_12.2) // CHECK:STDOUT: if %.loc14_17.2 br !if.then else br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.then: @@ -69,9 +69,9 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_12.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_12.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_12.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_12.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/if_expr/basic.carbon b/toolchain/check/testdata/if_expr/basic.carbon index e1614d7e9f94..523391149e8d 100644 --- a/toolchain/check/testdata/if_expr/basic.carbon +++ b/toolchain/check/testdata/if_expr/basic.carbon @@ -76,8 +76,8 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc16_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc16_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -184,19 +184,19 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_10.2: = bound_method %.loc17_10, %specific_fn.loc17 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc17_10.2(%.loc17_10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/if_expr/constant_condition.carbon b/toolchain/check/testdata/if_expr/constant_condition.carbon index 4d8259075cf3..019d3953e408 100644 --- a/toolchain/check/testdata/if_expr/constant_condition.carbon +++ b/toolchain/check/testdata/if_expr/constant_condition.carbon @@ -110,10 +110,10 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %.6d0: type = fn_type_with_self_type %Copy.WithSelf.Op.type.36e, %Copy.facet.09a [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.d1c, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc28 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc27_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc28 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc27_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %t.param_patt: %pattern_type.98f = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt: %pattern_type.98f = wrapper_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: %PartiallyConstant.type: type = fn_type @PartiallyConstant [concrete] @@ -374,18 +374,18 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc29_10.2: = bound_method %.loc29_10.2, %specific_fn.loc29 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc29_10.2(%.loc29_10.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc28: = bound_method %w.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc28: init %empty_tuple.type = call %Destroy.Op.bound.loc28(%w.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc27: = bound_method %v.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc27: init %empty_tuple.type = call %Destroy.Op.bound.loc27(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc28: = bound_method %w.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc28: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc28(%w.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc27: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc27: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc27(%v.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc28(%self.param: ref %ptr.d08) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc28(%self.param: ref %ptr.d08) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc27_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc27_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -468,10 +468,10 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %specific_fn.loc35: = specific_function %impl.elem0.loc35, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc35_10.2: = bound_method %.loc35_10.2, %specific_fn.loc35 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc35_10.2(%.loc35_10.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc34: = bound_method %w.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc34: init %empty_tuple.type = call %Destroy.Op.bound.loc34(%w.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc33: = bound_method %v.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc33: init %empty_tuple.type = call %Destroy.Op.bound.loc33(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc34: = bound_method %w.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc34: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc34(%w.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc33: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc33: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc33(%v.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/struct.carbon b/toolchain/check/testdata/if_expr/struct.carbon index 31c47ceecd79..1fed93f16b49 100644 --- a/toolchain/check/testdata/if_expr/struct.carbon +++ b/toolchain/check/testdata/if_expr/struct.carbon @@ -66,8 +66,8 @@ fn F(cond: bool) { // CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %struct.631: %struct_type.a.b.b4c = struct_value (%int_1.0c6, %int_2.295) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc18_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc18_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -180,19 +180,19 @@ fn F(cond: bool) { // CHECK:STDOUT: !if.expr.result: // CHECK:STDOUT: %.loc19_5: %struct_type.a.b.b4c = block_arg !if.expr.result // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.ref(%.loc19_5) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.3(%self.param: ref %struct_type.a.b.b4c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.3(%self.param: ref %struct_type.a.b.b4c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/custom_witness/destroy.carbon b/toolchain/check/testdata/impl/custom_witness/destroy.carbon index bfc994e6b32e..19c76a2d2896 100644 --- a/toolchain/check/testdata/impl/custom_witness/destroy.carbon +++ b/toolchain/check/testdata/impl/custom_witness/destroy.carbon @@ -77,3 +77,77 @@ fn F() { // CHECK:STDERR: C({}) as Core.Destroy; } + +// --- generic_destroy.carbon +library "[[@TEST_NAME]]"; + +// Constructing this type constructs a FacetValue containing a custom witness +// for Destroy that references a generated function `Destroy.Op`. If multiple +// functions are generated, they result in different `C` types. +class C(T: Core.Destroy) { adapt (); } + +fn F() -> C(()) { + return () as C(()); +} + +// --- generic_destroy_2.carbon +library "[[@TEST_NAME]]"; + +// Same as in generic_destroy.carbon. Allows us to import different witnesses +// for Core.Destroy and ensure they are all deduplicated. +class D(T: Core.Destroy) { adapt (); } + +fn G() -> D(()) { + return () as D(()); +} + +// --- imported_custom_witness_then_local_custom_witness_share_op_function.carbon +library "[[@TEST_NAME]]"; + +import library "generic_destroy"; + +fn H() { + // Imports a witness of `() as Core.Destroy` for `C` from the call to `F()`. + F(); + // Locally constructs a witness of `() as Core.Destroy` for `C` for the local + // variable. And uses the imported witness for the return of `F`. + // + // The witnesses must use the same `Destroy.Op` function for the assignment + // to work, as otherwise they are different types. + let _: C(()) = F(); +} + +// --- local_custom_witness_then_imported_custom_witness_share_op_function.carbon +library "[[@TEST_NAME]]"; + +import library "generic_destroy"; + +fn H() { + // Locally constructs a witness of `() as Core.Destroy` for `C` for the local + // variable. + var _: C(()) = () as C(()); + // Imports a witness of `() as Core.Destroy` for `C` from the call to `F()`. + // And uses the local witness for the local variable. + // + // The witnesses must use the same `Destroy.Op` function for the assignment + // to work, as otherwise they are different types. + let _: C(()) = F(); +} + +// --- two_imported_custom_witnesses_share_op_function.carbon +library "[[@TEST_NAME]]"; + +import library "generic_destroy"; +import library "generic_destroy_2"; + +// Verifies that we have the same facet value, and the same custom witness for +// Core.Destroy in both C(T) and D(T). +fn TestSameFacetValue[T: Core.Destroy](_: C(T), _: D(T)) {} + +fn H() { + // Imports a witness of `() as Core.Destroy` for `C` from the call to `F()`, + // and for `D` from the call the `G()`. These each come from a different + // library but they should be the same witness built on the canonical + // `Core.Destroy.Op` generated function. + TestSameFacetValue(F(), G()); +} diff --git a/toolchain/check/testdata/impl/extend_impl_generic.carbon b/toolchain/check/testdata/impl/extend_impl_generic.carbon index f70c97612a69..a592fe31b48b 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -147,10 +147,10 @@ class X(U: type) { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc22_27.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc22_27.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc22_27.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc22_27.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -356,28 +356,28 @@ class X(U: type) { // CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc22_27: = bound_method %.loc22_27.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc22_27: init %empty_tuple.type = call %Destroy.Op.bound.loc22_27(%.loc22_27.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc22_3: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc22_3: init %empty_tuple.type = call %Destroy.Op.bound.loc22_3(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc21: = bound_method %.loc21_27.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc21: init %empty_tuple.type = call %Destroy.Op.bound.loc21(%.loc21_27.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc22_27: = bound_method %.loc22_27.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc22_27: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc22_27(%.loc22_27.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc22_3: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc22_3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc22_3(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc21: = bound_method %.loc21_27.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc21: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc21(%.loc21_27.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_27.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_27.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_27.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_27.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_27.3(%self.param: ref %struct_type.x.a15) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_27.3(%self.param: ref %struct_type.x.a15) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_27.4(%self.param: ref %Param) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_27.4(%self.param: ref %Param) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon index 62b1fa9ce390..9688484eedbc 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon @@ -216,9 +216,9 @@ fn F() { // CHECK:STDOUT: %Z.WithSelf.Zero.237: %Z.WithSelf.Zero.type.356 = struct_value () [concrete] // CHECK:STDOUT: %.dfa: type = fn_type_with_self_type %Z.WithSelf.Zero.type.896, %Z.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc25_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e6b, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc25_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.e6b, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -337,13 +337,13 @@ fn F() { // CHECK:STDOUT: %Zero.ref: %Z.assoc_type = name_ref Zero, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.627] // CHECK:STDOUT: %impl.elem0: %.dfa = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%Point.as.Z.impl.Zero] // CHECK:STDOUT: %Point.as.Z.impl.Zero.call: init %empty_tuple.type = call %impl.elem0() -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e6b) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.e6b) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_7.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_7.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_7.2(%self.param: ref %Point) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_7.2(%self.param: ref %Point) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon index aeb42de4e9ab..d7ff392d9f1d 100644 --- a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon +++ b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon @@ -282,9 +282,9 @@ class X { // CHECK:STDOUT: %Point.as.Z.impl.Method.bound: = bound_method %Point.val, %Point.as.Z.impl.Method [concrete] // CHECK:STDOUT: %.e6b: ref %Point = temporary invalid, %Point.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc29_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e6b, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc29_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.e6b, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -480,13 +480,13 @@ class X { // CHECK:STDOUT: %.loc29_7.2: ref %Point = temporary %.loc29_5.2, %.loc29_7.1 [concrete = constants.%.e6b] // CHECK:STDOUT: %.loc29_7.3: %Point = acquire_value %.loc29_7.2 [concrete = constants.%Point.val] // CHECK:STDOUT: %Point.as.Z.impl.Method.call: init %empty_tuple.type = call %bound_method(%.loc29_7.3) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e6b) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.e6b) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc29_7.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc29_7.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc29_7.2(%self.param: ref %Point) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc29_7.2(%self.param: ref %Point) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/impl_as.carbon b/toolchain/check/testdata/impl/impl_as.carbon index cb0d260a5d72..19e780e02bbd 100644 --- a/toolchain/check/testdata/impl/impl_as.carbon +++ b/toolchain/check/testdata/impl/impl_as.carbon @@ -51,8 +51,8 @@ class C { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc23_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -136,14 +136,14 @@ class C { // CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt] // CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%c.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_7.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_7.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_7.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_7.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/impl_thunk.carbon b/toolchain/check/testdata/impl/impl_thunk.carbon index 71f2a2c43d7c..013f84d01c26 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -372,8 +372,8 @@ impl () as I({}) { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.48cdab.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_48.2 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.bd5be1.2: %empty_tuple.type.as.I.impl.F.type.48cdab.2 = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.c.d.15a = struct_value (%empty_tuple, %empty_struct) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc10_48.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc10_48.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.ref { @@ -436,16 +436,16 @@ impl () as I({}) { // CHECK:STDOUT: %.loc10_48.12: init %empty_struct_type to %.loc10_48.9 = in_place_init %.loc10_48.11 [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_48.13: init %struct_type.c.d.15a to %return.param = struct_init (%.loc10_48.7, %.loc10_48.12) [concrete = constants.%struct] // CHECK:STDOUT: %.loc10_48.14: init %struct_type.c.d.15a = converted %empty_tuple.type.as.I.impl.F.call, %.loc10_48.13 [concrete = constants.%struct] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_48.2, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc10_48.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc10_48.2, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc10_48.2) // CHECK:STDOUT: return %.loc10_48.14 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_48.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_48.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_48.2(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_48.2(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_48.3(%self.param: ref %struct_type.d.c.b36) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_48.3(%self.param: ref %struct_type.d.c.b36) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -985,8 +985,8 @@ impl () as I({}) { // CHECK:STDOUT: %X.facet: %X.type = facet_value %A, (%X.impl_witness) [concrete] // CHECK:STDOUT: %A.as.X.impl.F.type.48cdab.2: type = fn_type @A.as.X.impl.F.loc23_14.2 [concrete] // CHECK:STDOUT: %A.as.X.impl.F.bd5be1.2: %A.as.X.impl.F.type.48cdab.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23_14.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc23_14.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @A.as.X.impl: %A.ref as %X.ref { @@ -1026,14 +1026,14 @@ impl () as I({}) { // CHECK:STDOUT: %.loc23_14.4: ref %A = class_element_access %.loc23_14.3, element0 // CHECK:STDOUT: %.loc23_14.5: ref %A = converted %A.as.X.impl.F.call, %.loc23_14.4 // CHECK:STDOUT: %.loc23_14.6: %A = acquire_value %.loc23_14.5 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc23_14.3, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc23_14.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc23_14.3, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc23_14.3) // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_14.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_14.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_14.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_14.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1478,8 +1478,8 @@ impl () as I({}) { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.48cdab.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_29.2 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.bd5be1.2: %empty_tuple.type.as.I.impl.F.type.48cdab.2 = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.f95 = struct_value (%empty_struct, %empty_struct) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_29.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_29.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.type { @@ -1530,14 +1530,14 @@ impl () as I({}) { // CHECK:STDOUT: %.loc10_29.12: init %empty_struct_type to %.loc10_29.9 = in_place_init %.loc10_29.11 [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_29.13: init %struct_type.a.b.f95 to %return.param = struct_init (%.loc10_29.7, %.loc10_29.12) [concrete = constants.%struct] // CHECK:STDOUT: %.loc10_29.14: init %struct_type.a.b.f95 = converted %empty_tuple.type.as.I.impl.F.call, %.loc10_29.13 [concrete = constants.%struct] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_29.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc10_29.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc10_29.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc10_29.2) // CHECK:STDOUT: return %.loc10_29.14 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_29.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_29.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_29.2(%self.param: ref %struct_type.b.a.1b0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_29.2(%self.param: ref %struct_type.b.a.1b0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/import_thunk.carbon b/toolchain/check/testdata/impl/import_thunk.carbon index f0d5fbc10ab7..1eb5c4d0b071 100644 --- a/toolchain/check/testdata/impl/import_thunk.carbon +++ b/toolchain/check/testdata/impl/import_thunk.carbon @@ -151,17 +151,17 @@ fn G() { // CHECK:STDOUT: %.e66: ref %C.6b1ed7.2 = temporary invalid, %C.val [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Self.0e7: %Destroy.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self.0e7) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Self.0e7) [symbolic] // CHECK:STDOUT: %Destroy.WithSelf.Op.42b: %Destroy.WithSelf.Op.type.d3e = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.assoc_type: type = assoc_entity_type @Destroy [concrete] // CHECK:STDOUT: %assoc0: %Destroy.assoc_type = assoc_entity element0, imports.%Core.import_ref.918 [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.6b1ed7.2, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.886: %Destroy.type = facet_value %C.6b1ed7.2, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ba0: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.886) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ba0: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.886) [symbolic] // CHECK:STDOUT: %.854: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.ba0, %Destroy.facet.886 [symbolic] // CHECK:STDOUT: %impl.elem0: %.854 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %bound_method.3e7: = bound_method %.e66, %impl.elem0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.886) [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op.1(%Destroy.facet.886) [symbolic] // CHECK:STDOUT: %bound_method.ef4: = bound_method %.e66, %specific_impl_fn [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -320,11 +320,11 @@ fn G() { // CHECK:STDOUT: %.9: ref @C.as.I.impl.F.loc8_24.2.%C (%C.6b1ed7.2) = temporary invalid, %C.val [symbolic = %.9 (constants.%.e66)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet.3: %Destroy.type = facet_value %C, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.3 (constants.%Destroy.facet.886)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.ba0)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.ba0)] // CHECK:STDOUT: %.10: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.3 [symbolic = %.10 (constants.%.854)] // CHECK:STDOUT: %impl.elem0.2: @C.as.I.impl.F.loc8_24.2.%.10 (%.854) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.3: = bound_method %.9, %impl.elem0.2 [symbolic = %bound_method.3 (constants.%bound_method.3e7)] -// CHECK:STDOUT: %specific_impl_fn.2: = specific_impl_function %impl.elem0.2, @Destroy.WithSelf.Op(%Destroy.facet.3) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.2: = specific_impl_function %impl.elem0.2, @Destroy.WithSelf.Op.1(%Destroy.facet.3) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.4: = bound_method %.9, %specific_impl_fn.2 [symbolic = %bound_method.4 (constants.%bound_method.ef4)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: %empty_struct_type) [thunk @C.as.I.impl.%C.as.I.impl.F.decl.loc8_24.1 for imports.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet)] { @@ -345,14 +345,14 @@ fn G() { // CHECK:STDOUT: %.7: %Destroy.type = converted constants.%C.6b1ed7.2, %Destroy.facet.1 [symbolic = %Destroy.facet.3 (constants.%Destroy.facet.886)] // CHECK:STDOUT: %Destroy.facet.2: %Destroy.type = facet_value constants.%C.6b1ed7.2, (constants.%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.3 (constants.%Destroy.facet.886)] // CHECK:STDOUT: %.8: %Destroy.type = converted constants.%C.6b1ed7.2, %Destroy.facet.2 [symbolic = %Destroy.facet.3 (constants.%Destroy.facet.886)] -// CHECK:STDOUT: %specific_impl_fn.1: = specific_impl_function %impl.elem0.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.886) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.1: = specific_impl_function %impl.elem0.1, @Destroy.WithSelf.Op.1(constants.%Destroy.facet.886) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.2: = bound_method %.5, %specific_impl_fn.1 [symbolic = %bound_method.4 (constants.%bound_method.ef4)] // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.2(%.5) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.2(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%X) { // CHECK:STDOUT: %X.patt.loc5_10.2 => constants.%X.patt @@ -449,10 +449,10 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.6b1ed7.2, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.886: %Destroy.type = facet_value %C.6b1ed7.2, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ba0: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.886) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ba0: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.886) [symbolic] // CHECK:STDOUT: %.854: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.ba0, %Destroy.facet.886 [symbolic] // CHECK:STDOUT: %impl.elem0: %.854 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.886) [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op.1(%Destroy.facet.886) [symbolic] // CHECK:STDOUT: %C.val.2b2: %C.6b1ed7.2 = struct_value () [symbolic] // CHECK:STDOUT: %.e66: ref %C.6b1ed7.2 = temporary invalid, %C.val.2b2 [symbolic] // CHECK:STDOUT: %bound_method.ef4: = bound_method %.e66, %specific_impl_fn [symbolic] @@ -476,13 +476,13 @@ fn G() { // CHECK:STDOUT: %C.as.I.impl.F.specific_fn.e3e0cd.2: = specific_function %C.as.I.impl.F.4ca3bc.1, @C.as.I.impl.F.2(%empty_tuple) [concrete] // CHECK:STDOUT: %C.val.168: %C.2c9 = struct_value () [concrete] // CHECK:STDOUT: %.790: ref %C.2c9 = temporary invalid, %C.val.168 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_16.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.2: = custom_witness (%Destroy.Op.1a2547.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.b7e: %Destroy.type = facet_value %C.2c9, (%custom_witness.df9cc1.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.90b: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.b7e) [concrete] -// CHECK:STDOUT: %.ea6: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.90b, %Destroy.facet.b7e [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.790, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc7_16.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.2: = custom_witness (%Destroy.WithSelf.Op.403171.2), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.24b: %Destroy.type = facet_value %C.2c9, (%custom_witness.6c4ec3.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.07b: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.24b) [concrete] +// CHECK:STDOUT: %.34c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.07b, %Destroy.facet.24b [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.790, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -593,7 +593,7 @@ fn G() { // CHECK:STDOUT: %.loc7_16.6: ref %C.2c9 = temporary %.loc7_16.3, %.loc7_16.5 [concrete = constants.%.790] // CHECK:STDOUT: %.loc7_16.7: %C.2c9 = acquire_value %.loc7_16.6 [concrete = constants.%C.val.168] // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %C.as.I.impl.F.specific_fn(%.loc7_16.7) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.790) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.790) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -613,11 +613,11 @@ fn G() { // CHECK:STDOUT: %.1: ref @C.as.I.impl.F.1.%C (%C.6b1ed7.2) = temporary invalid, %C.val [symbolic = %.1 (constants.%.e66)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.886)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.ba0)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.ba0)] // CHECK:STDOUT: %.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.2 (constants.%.854)] // CHECK:STDOUT: %impl.elem0: @C.as.I.impl.F.1.%.2 (%.854) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.1: = bound_method %.1, %impl.elem0 [symbolic = %bound_method.1 (constants.%bound_method.3e7)] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op.1(%Destroy.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.2: = bound_method %.1, %specific_impl_fn [symbolic = %bound_method.2 (constants.%bound_method.ef4)] // CHECK:STDOUT: // CHECK:STDOUT: fn [thunk imports.%Main.F.b80 for imports.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.38e)]; @@ -636,9 +636,9 @@ fn G() { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_16.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_16.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_16.2(%self.param: ref %C.2c9) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_16.2(%self.param: ref %C.2c9) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -731,14 +731,14 @@ fn G() { // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: %C.val => constants.%C.val.168 // CHECK:STDOUT: %.1 => constants.%.790 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.2 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.b7e -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.90b -// CHECK:STDOUT: %.2 => constants.%.ea6 -// CHECK:STDOUT: %impl.elem0 => constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %bound_method.1 => constants.%Destroy.Op.bound -// CHECK:STDOUT: %specific_impl_fn => constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %bound_method.2 => constants.%Destroy.Op.bound +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.2 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.24b +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.07b +// CHECK:STDOUT: %.2 => constants.%.34c +// CHECK:STDOUT: %impl.elem0 => constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %bound_method.1 => constants.%Destroy.WithSelf.Op.bound +// CHECK:STDOUT: %specific_impl_fn => constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %bound_method.2 => constants.%Destroy.WithSelf.Op.bound // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl.F.2(constants.%empty_tuple) { diff --git a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon index c74fe5ae13fa..201b8c214be8 100644 --- a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon +++ b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon @@ -142,9 +142,9 @@ fn G() { // CHECK:STDOUT: %.c59: type = fn_type_with_self_type %J.WithSelf.JJ.type.088, %J.facet.85d [concrete] // CHECK:STDOUT: %C.as.J.impl.JJ.bound: = bound_method %.5d3, %C.as.J.impl.JJ [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc40_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.5d3, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc40_8.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.5d3, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: %facet_value: %facet_type = facet_value %C, (%I.impl_witness, %J.impl_witness) [concrete] // CHECK:STDOUT: %t.param_patt.5f8: %pattern_type.f79 = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt.094: %pattern_type.f79 = wrapper_binding_pattern t, %t.param_patt.5f8 [concrete] @@ -436,7 +436,7 @@ fn G() { // CHECK:STDOUT: %bound_method: = bound_method %.loc40_8.2, %impl.elem0 [concrete = constants.%C.as.J.impl.JJ.bound] // CHECK:STDOUT: %.loc40_8.3: %C = acquire_value %.loc40_8.2 [concrete = constants.%C.val] // CHECK:STDOUT: %C.as.J.impl.JJ.call: init %empty_tuple.type = call %bound_method(%.loc40_8.3) -// CHECK:STDOUT: %Destroy.Op.call.loc40: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.5d3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc40: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.5d3) // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %C.ref.loc46_5: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc46_9.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -454,7 +454,7 @@ fn G() { // CHECK:STDOUT: %.loc46_11.2: ref %C = temporary %.loc46_9.2, %.loc46_11.1 [concrete = constants.%.5d3] // CHECK:STDOUT: %.loc46_11.3: %C = acquire_value %.loc46_11.2 [concrete = constants.%C.val] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc46_11.3) -// CHECK:STDOUT: %Destroy.Op.call.loc46: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.5d3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc46: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.5d3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -468,9 +468,9 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc40_8.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc40_8.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc40_8.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc40_8.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/import.carbon b/toolchain/check/testdata/impl/lookup/import.carbon index deb057b5a053..501f30fbeac7 100644 --- a/toolchain/check/testdata/impl/lookup/import.carbon +++ b/toolchain/check/testdata/impl/lookup/import.carbon @@ -1796,8 +1796,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete] // CHECK:STDOUT: %.5a4: type = fn_type_with_self_type %Y.WithSelf.K.type.bd4, %Y.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc13_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc13_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1963,14 +1963,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 // CHECK:STDOUT: %.loc14: %AnyParam.591 = acquire_value %obj.ref // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method(%.loc14) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %obj.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%obj.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %obj.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%obj.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.2(%self.param: ref %AnyParam.591) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.2(%self.param: ref %AnyParam.591) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2079,8 +2079,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete] // CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2208,8 +2208,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 // CHECK:STDOUT: %.loc10: %AnyParam.591 = acquire_value %obj.ref // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method(%.loc10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %obj.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%obj.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %obj.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%obj.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2228,9 +2228,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: fn @AnyParam.as.Y.impl.K [from "has_generic_interface.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %AnyParam.591) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %AnyParam.591) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2335,8 +2335,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete] // CHECK:STDOUT: %.66a: type = fn_type_with_self_type %Y.WithSelf.K.type.2f6, %Y.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc13_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc13_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2497,14 +2497,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 // CHECK:STDOUT: %.loc14: %AnyParam.21c = acquire_value %obj.ref // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method(%.loc14) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %obj.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%obj.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %obj.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%obj.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.2(%self.param: ref %AnyParam.21c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13_3.2(%self.param: ref %AnyParam.21c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2609,8 +2609,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete] // CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2736,8 +2736,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 // CHECK:STDOUT: %.loc9: %AnyParam.21c = acquire_value %obj.ref // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method(%.loc9) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %obj.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%obj.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %obj.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%obj.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2756,9 +2756,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: fn @AnyParam.as.Y.impl.K [from "has_generic_class.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %AnyParam.21c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %AnyParam.21c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index 74169dd82d7e..4b0581f2e60f 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -341,8 +341,8 @@ fn Call() { // CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete] // CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc9_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc9_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -413,8 +413,8 @@ fn Call() { // CHECK:STDOUT: %.loc9_7.2: ref %C = temporary %.loc9_7.1, %Get.call // CHECK:STDOUT: %.loc9_7.3: %C = acquire_value %.loc9_7.2 // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %bound_method(%.loc9_7.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc9_7.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc9_7.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc9_7.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc9_7.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -432,9 +432,9 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.I.impl.F [from "c.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_7.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_7.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_7.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_7.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/expr_category.carbon b/toolchain/check/testdata/index/expr_category.carbon index 18648c073100..df59e962e04b 100644 --- a/toolchain/check/testdata/index/expr_category.carbon +++ b/toolchain/check/testdata/index/expr_category.carbon @@ -106,10 +106,10 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %bound_method.b7a: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc21 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc18_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc21 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc18_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %b.patt.911d20.2: %pattern_type.771 = wrapper_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %ValueBinding.type: type = fn_type @ValueBinding [concrete] // CHECK:STDOUT: %ValueBinding: %ValueBinding.type = struct_value () [concrete] @@ -273,23 +273,23 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_8: init %i32 = call %bound_method.loc22_8.2(%int_4) [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %.loc22_8: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_8 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: assign %.loc22_6, %.loc22_8 -// CHECK:STDOUT: %Destroy.Op.bound.loc21: = bound_method %pa.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc21: init %empty_tuple.type = call %Destroy.Op.bound.loc21(%pa.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc18: = bound_method %a.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc18: init %empty_tuple.type = call %Destroy.Op.bound.loc18(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc21: = bound_method %pa.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc21: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc21(%pa.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21(%self.param: ref %ptr.d08) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc21(%self.param: ref %ptr.d08) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -377,10 +377,10 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc32_7.2: %i32 = converted %int_0.loc32, %.loc32_7.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc32_8.1: ref %i32 = array_index %.loc32_5.2, %.loc32_7.2 // CHECK:STDOUT: %.loc32_8.2: %i32 = acquire_value %.loc32_8.1 -// CHECK:STDOUT: %Destroy.Op.bound.loc32: = bound_method %.loc32_5.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc32: init %empty_tuple.type = call %Destroy.Op.bound.loc32(%.loc32_5.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc26: = bound_method %a.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc26: init %empty_tuple.type = call %Destroy.Op.bound.loc26(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc32: = bound_method %.loc32_5.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc32: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc32(%.loc32_5.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc26: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc26: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc26(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_expr_category.carbon b/toolchain/check/testdata/index/fail_expr_category.carbon index 383d92f105fb..e82071b7c949 100644 --- a/toolchain/check/testdata/index/fail_expr_category.carbon +++ b/toolchain/check/testdata/index/fail_expr_category.carbon @@ -101,10 +101,10 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %pf.patt: %pattern_type.f00 = ref_binding_pattern pf [concrete] // CHECK:STDOUT: %pf.var_patt: %pattern_type.f00 = var_pattern %pf.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc41_5.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc36 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc41_5.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc36 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -264,28 +264,28 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41_10: init %i32 = call %bound_method.loc41_10.2(%int_4.loc41) [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %.loc41_10: init %i32 = converted %int_4.loc41, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41_10 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: assign %.loc41_8.2, %.loc41_10 -// CHECK:STDOUT: %Destroy.Op.bound.loc41: = bound_method %.loc41_5.2, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc41: init %empty_tuple.type = call %Destroy.Op.bound.loc41(%.loc41_5.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc36_28: = bound_method %.loc36_28.2, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc36_28: init %empty_tuple.type = call %Destroy.Op.bound.loc36_28(%.loc36_28.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc36_3: = bound_method %pf.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc36_3: init %empty_tuple.type = call %Destroy.Op.bound.loc36_3(%pf.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc23: = bound_method %pb.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc23: init %empty_tuple.type = call %Destroy.Op.bound.loc23(%pb.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc41: = bound_method %.loc41_5.2, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc41: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc41(%.loc41_5.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc36_28: = bound_method %.loc36_28.2, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc36_28: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc36_28(%.loc36_28.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc36_3: = bound_method %pf.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc36_3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc36_3(%pf.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc23: = bound_method %pb.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc23: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc23(%pb.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc41_5.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc41_5.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc41_5.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc41_5.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc41_5.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc41_5.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc36(%self.param: ref %ptr.d08) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc36(%self.param: ref %ptr.d08) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_name_not_found.carbon b/toolchain/check/testdata/index/fail_name_not_found.carbon index fea60545ca46..9b4e5773bb74 100644 --- a/toolchain/check/testdata/index/fail_name_not_found.carbon +++ b/toolchain/check/testdata/index/fail_name_not_found.carbon @@ -36,8 +36,8 @@ fn Main() { // CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc20_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -73,14 +73,14 @@ fn Main() { // CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%b.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/default_fn.carbon b/toolchain/check/testdata/interface/default_fn.carbon index eac82925b59b..e439e488509c 100644 --- a/toolchain/check/testdata/interface/default_fn.carbon +++ b/toolchain/check/testdata/interface/default_fn.carbon @@ -63,8 +63,8 @@ class C { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.938: type = fn_type_with_self_type %I.WithSelf.F.type.684, %I.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc20_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc20_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -180,8 +180,8 @@ class C { // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc21: %C = acquire_value %c.ref // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %bound_method(%.loc21) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%c.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -191,9 +191,9 @@ class C { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_7.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_7.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_7.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_7.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/generic_method.carbon b/toolchain/check/testdata/interface/generic_method.carbon index 0a9b6f3e8127..c6ea260cf762 100644 --- a/toolchain/check/testdata/interface/generic_method.carbon +++ b/toolchain/check/testdata/interface/generic_method.carbon @@ -190,17 +190,17 @@ fn CallIndirect() { // CHECK:STDOUT: %return.patt.8bb: %pattern_type.b33 = return_slot_pattern %return.param_patt.75d, %tuple.type.2cd [concrete] // CHECK:STDOUT: %Y.as.A.impl.F.specific_fn: = specific_function %Y.as.A.impl.F, @Y.as.A.impl.F(%Z) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc23_22.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.3: = custom_witness (%Destroy.Op.1a2547.3), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc23_22.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.5: = custom_witness (%Destroy.Op.1a2547.5), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.e95: %Destroy.type = facet_value %tuple.type.2cd, (%custom_witness.df9cc1.5) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.964: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.e95) [concrete] -// CHECK:STDOUT: %.41a: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.964, %Destroy.facet.e95 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc22 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc23_22.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.3: = custom_witness (%Destroy.WithSelf.Op.403171.3), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc23_22.5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.5: = custom_witness (%Destroy.WithSelf.Op.403171.5), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.0af: %Destroy.type = facet_value %tuple.type.2cd, (%custom_witness.6c4ec3.5) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.5f3: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.0af) [concrete] +// CHECK:STDOUT: %.1e4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.5f3, %Destroy.facet.0af [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc22 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: %BitAndWith.type.a06: type = generic_interface_type @BitAndWith [concrete] // CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.a06 = struct_value () [concrete] // CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] @@ -236,13 +236,13 @@ fn CallIndirect() { // CHECK:STDOUT: %require_complete.d14: = require_complete_type %tuple.type.c2a [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.a02: = lookup_impl_witness %tuple.type.c2a, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.2f8: %Destroy.type = facet_value %tuple.type.c2a, (%Destroy.lookup_impl_witness.a02) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2ac: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.2f8) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2ac: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.2f8) [symbolic] // CHECK:STDOUT: %.89c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.2ac, %Destroy.facet.2f8 [symbolic] // CHECK:STDOUT: %impl.elem0.a1a: %.89c = impl_witness_access %Destroy.lookup_impl_witness.a02, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.65e: = specific_impl_function %impl.elem0.a1a, @Destroy.WithSelf.Op(%Destroy.facet.2f8) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.65e: = specific_impl_function %impl.elem0.a1a, @Destroy.WithSelf.Op.1(%Destroy.facet.2f8) [symbolic] // CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete] // CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete] -// CHECK:STDOUT: %facet_value: %facet_type = facet_value %Y, (%A.impl_witness, %custom_witness.df9cc1.3) [concrete] +// CHECK:STDOUT: %facet_value: %facet_type = facet_value %Y, (%A.impl_witness, %custom_witness.6c4ec3.3) [concrete] // CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric, @CallGeneric(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.458: = complete_type_witness %ptr.415 [concrete] // CHECK:STDOUT: %complete_type.dec: = complete_type_witness %tuple.type.2cd [concrete] @@ -567,33 +567,33 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc23_22.1: ref %tuple.type.2cd = temporary_storage // CHECK:STDOUT: %Y.as.A.impl.F.call: init %tuple.type.2cd to %.loc23_22.1 = call %specific_fn(%addr) // CHECK:STDOUT: %.loc23_22.2: ref %tuple.type.2cd = temporary %.loc23_22.1, %Y.as.A.impl.F.call -// CHECK:STDOUT: %Destroy.Op.bound.loc23: = bound_method %.loc23_22.2, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc23: init %empty_tuple.type = call %Destroy.Op.bound.loc23(%.loc23_22.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc22: = bound_method %u.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc22: init %empty_tuple.type = call %Destroy.Op.bound.loc22(%u.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc23: = bound_method %.loc23_22.2, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc23: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc23(%.loc23_22.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc22: = bound_method %u.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc22: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc22(%u.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_22.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_22.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_22.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_22.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_22.3(%self.param: ref %Y) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_22.3(%self.param: ref %Y) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_22.4(%self.param: ref %ptr.415) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_22.4(%self.param: ref %ptr.415) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_22.5(%self.param: ref %tuple.type.2cd) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_22.5(%self.param: ref %tuple.type.2cd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22(%self.param: ref %Z) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22(%self.param: ref %Z) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -614,10 +614,10 @@ fn CallIndirect() { // CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.d14)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.a02)] // CHECK:STDOUT: %Destroy.facet.loc28_12.3: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc28_12.3 (constants.%Destroy.facet.2f8)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc28_12.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.2ac)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.loc28_12.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.2ac)] // CHECK:STDOUT: %.loc28_12.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc28_12.3 [symbolic = %.loc28_12.5 (constants.%.89c)] // CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.5 (%.89c) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.a1a)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op(%Destroy.facet.loc28_12.3) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.65e)] +// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op.1(%Destroy.facet.loc28_12.3) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.65e)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -655,11 +655,11 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc28_12.3: %Destroy.type = converted constants.%tuple.type.c2a, %Destroy.facet.loc28_12.1 [symbolic = %Destroy.facet.loc28_12.3 (constants.%Destroy.facet.2f8)] // CHECK:STDOUT: %Destroy.facet.loc28_12.2: %Destroy.type = facet_value constants.%tuple.type.c2a, (constants.%Destroy.lookup_impl_witness.a02) [symbolic = %Destroy.facet.loc28_12.3 (constants.%Destroy.facet.2f8)] // CHECK:STDOUT: %.loc28_12.4: %Destroy.type = converted constants.%tuple.type.c2a, %Destroy.facet.loc28_12.2 [symbolic = %Destroy.facet.loc28_12.3 (constants.%Destroy.facet.2f8)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.2f8) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.65e)] +// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op.1(constants.%Destroy.facet.2f8) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.65e)] // CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.2, %specific_impl_fn.loc28_12.1 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc28_12.2(%.loc28_12.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %u.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%u.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28_12.2(%.loc28_12.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %u.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc27: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%u.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -668,7 +668,7 @@ fn CallIndirect() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %CallGeneric.ref: %CallGeneric.type = name_ref CallGeneric, file.%CallGeneric.decl [concrete = constants.%CallGeneric] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y] -// CHECK:STDOUT: %facet_value: %facet_type = facet_value %Y.ref, (constants.%A.impl_witness, constants.%custom_witness.df9cc1.3) [concrete = constants.%facet_value] +// CHECK:STDOUT: %facet_value: %facet_type = facet_value %Y.ref, (constants.%A.impl_witness, constants.%custom_witness.6c4ec3.3) [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc32: %facet_type = converted %Y.ref, %facet_value [concrete = constants.%facet_value] // CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric.ref, @CallGeneric(constants.%facet_value) [concrete = constants.%CallGeneric.specific_fn] // CHECK:STDOUT: %CallGeneric.call: init %empty_tuple.type = call %CallGeneric.specific_fn() @@ -856,12 +856,12 @@ fn CallIndirect() { // CHECK:STDOUT: %specific_impl_fn.loc28_4.2 => constants.%Y.as.A.impl.F.specific_fn // CHECK:STDOUT: %tuple.type => constants.%tuple.type.2cd // CHECK:STDOUT: %require_complete => constants.%complete_type.dec -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.5 -// CHECK:STDOUT: %Destroy.facet.loc28_12.3 => constants.%Destroy.facet.e95 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.964 -// CHECK:STDOUT: %.loc28_12.5 => constants.%.41a -// CHECK:STDOUT: %impl.elem0.loc28_12.2 => constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2 => constants.%Destroy.Op.1a2547.5 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.5 +// CHECK:STDOUT: %Destroy.facet.loc28_12.3 => constants.%Destroy.facet.0af +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.5f3 +// CHECK:STDOUT: %.loc28_12.5 => constants.%.1e4 +// CHECK:STDOUT: %impl.elem0.loc28_12.2 => constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %specific_impl_fn.loc28_12.2 => constants.%Destroy.WithSelf.Op.403171.5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.d1f, constants.%Z) { @@ -993,18 +993,18 @@ fn CallIndirect() { // CHECK:STDOUT: %Z.val: %Z = struct_value () [concrete] // CHECK:STDOUT: %.7dc: ref %Z = temporary invalid, %Z.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc24_39.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.5: = custom_witness (%Destroy.Op.1a2547.5), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc24_39.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc24_39.7 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.7: = custom_witness (%Destroy.Op.1a2547.7), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.50b: %Destroy.type = facet_value %tuple.type.d40, (%custom_witness.df9cc1.7) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.43f: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.50b) [concrete] -// CHECK:STDOUT: %.3d3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.43f, %Destroy.facet.50b [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.7dc, %Destroy.Op.1a2547.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc24_39.5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.5: = custom_witness (%Destroy.WithSelf.Op.403171.5), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc24_39.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc24_39.7 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.7: = custom_witness (%Destroy.WithSelf.Op.403171.7), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.824: %Destroy.type = facet_value %tuple.type.d40, (%custom_witness.6c4ec3.7) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.779: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.824) [concrete] +// CHECK:STDOUT: %.c7d: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.779, %Destroy.facet.824 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.7dc, %Destroy.WithSelf.Op.403171.6 [concrete] // CHECK:STDOUT: %BitAndWith.type.a06: type = generic_interface_type @BitAndWith [concrete] // CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.a06 = struct_value () [concrete] // CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] @@ -1041,13 +1041,13 @@ fn CallIndirect() { // CHECK:STDOUT: %require_complete.4e1: = require_complete_type %tuple.type.036 [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.8dc: = lookup_impl_witness %tuple.type.036, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.fef: %Destroy.type = facet_value %tuple.type.036, (%Destroy.lookup_impl_witness.8dc) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.937: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.fef) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.937: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.fef) [symbolic] // CHECK:STDOUT: %.93b: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.937, %Destroy.facet.fef [symbolic] // CHECK:STDOUT: %impl.elem0.743: %.93b = impl_witness_access %Destroy.lookup_impl_witness.8dc, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.618: = specific_impl_function %impl.elem0.743, @Destroy.WithSelf.Op(%Destroy.facet.fef) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.618: = specific_impl_function %impl.elem0.743, @Destroy.WithSelf.Op.1(%Destroy.facet.fef) [symbolic] // CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete] // CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete] -// CHECK:STDOUT: %facet_value: %facet_type = facet_value %tuple.type.59f, (%A.impl_witness.0e0, %custom_witness.df9cc1.5) [concrete] +// CHECK:STDOUT: %facet_value: %facet_type = facet_value %tuple.type.59f, (%A.impl_witness.0e0, %custom_witness.6c4ec3.5) [concrete] // CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric, @CallGeneric(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.8f6: = complete_type_witness %tuple.type.d40 [concrete] // CHECK:STDOUT: %tuple.918: %tuple.type.966 = tuple_value (%X, %A.facet.89e, %Z) [concrete] @@ -1377,40 +1377,40 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc24_38.6: %Z = acquire_value %.loc24_38.5 [concrete = constants.%Z.val] // CHECK:STDOUT: %tuple.type.as.A.impl.F.call: init %tuple.type.d40 to %.loc24_39.1 = call %specific_fn(%.loc24_38.6) // CHECK:STDOUT: %.loc24_39.2: ref %tuple.type.d40 = temporary %.loc24_39.1, %tuple.type.as.A.impl.F.call -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc24_39.2, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc24_39: init %empty_tuple.type = call %Destroy.Op.bound(%.loc24_39.2) -// CHECK:STDOUT: %Destroy.Op.call.loc24_38: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.7dc) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc24_39.2, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24_39: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc24_39.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24_38: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.7dc) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_39.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_39.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_39.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_39.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_39.3(%self.param: ref %Y1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_39.3(%self.param: ref %Y1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_39.4(%self.param: ref %Y2) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_39.4(%self.param: ref %Y2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_39.5(%self.param: ref %tuple.type.59f) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_39.5(%self.param: ref %tuple.type.59f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_39.6(%self.param: ref %Z) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_39.6(%self.param: ref %Z) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_39.7(%self.param: ref %tuple.type.d40) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_39.7(%self.param: ref %tuple.type.d40) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1431,10 +1431,10 @@ fn CallIndirect() { // CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.4e1)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.8dc)] // CHECK:STDOUT: %Destroy.facet.loc28_12.3: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc28_12.3 (constants.%Destroy.facet.fef)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc28_12.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.937)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.loc28_12.3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.937)] // CHECK:STDOUT: %.loc28_12.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc28_12.3 [symbolic = %.loc28_12.5 (constants.%.93b)] // CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.5 (%.93b) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.743)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op(%Destroy.facet.loc28_12.3) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.618)] +// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op.1(%Destroy.facet.loc28_12.3) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.618)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -1461,10 +1461,10 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc28_12.3: %Destroy.type = converted constants.%tuple.type.036, %Destroy.facet.loc28_12.1 [symbolic = %Destroy.facet.loc28_12.3 (constants.%Destroy.facet.fef)] // CHECK:STDOUT: %Destroy.facet.loc28_12.2: %Destroy.type = facet_value constants.%tuple.type.036, (constants.%Destroy.lookup_impl_witness.8dc) [symbolic = %Destroy.facet.loc28_12.3 (constants.%Destroy.facet.fef)] // CHECK:STDOUT: %.loc28_12.4: %Destroy.type = converted constants.%tuple.type.036, %Destroy.facet.loc28_12.2 [symbolic = %Destroy.facet.loc28_12.3 (constants.%Destroy.facet.fef)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.fef) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.618)] +// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op.1(constants.%Destroy.facet.fef) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.618)] // CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.2, %specific_impl_fn.loc28_12.1 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc28_12.2(%.loc28_12.2) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.7dc) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc28_12: init %empty_tuple.type = call %bound_method.loc28_12.2(%.loc28_12.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc28_11: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.7dc) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1477,7 +1477,7 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc33_22: %tuple.type.24b = tuple_literal (%Y1.ref, %Y2.ref) [concrete = constants.%tuple.8db] // CHECK:STDOUT: %.loc33_27: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc33_24: type = converted %.loc33_22, constants.%tuple.type.59f [concrete = constants.%tuple.type.59f] -// CHECK:STDOUT: %facet_value: %facet_type = facet_value %.loc33_24, (constants.%A.impl_witness.0e0, constants.%custom_witness.df9cc1.5) [concrete = constants.%facet_value] +// CHECK:STDOUT: %facet_value: %facet_type = facet_value %.loc33_24, (constants.%A.impl_witness.0e0, constants.%custom_witness.6c4ec3.5) [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc33_31: %facet_type = converted %.loc33_24, %facet_value [concrete = constants.%facet_value] // CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric.ref, @CallGeneric(constants.%facet_value) [concrete = constants.%CallGeneric.specific_fn] // CHECK:STDOUT: %CallGeneric.call: init %empty_tuple.type = call %CallGeneric.specific_fn() @@ -1741,12 +1741,12 @@ fn CallIndirect() { // CHECK:STDOUT: %specific_impl_fn.loc28_4.2 => constants.%tuple.type.as.A.impl.F.specific_fn.981 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.d40 // CHECK:STDOUT: %require_complete => constants.%complete_type.8f6 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.7 -// CHECK:STDOUT: %Destroy.facet.loc28_12.3 => constants.%Destroy.facet.50b -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.43f -// CHECK:STDOUT: %.loc28_12.5 => constants.%.3d3 -// CHECK:STDOUT: %impl.elem0.loc28_12.2 => constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2 => constants.%Destroy.Op.1a2547.7 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.7 +// CHECK:STDOUT: %Destroy.facet.loc28_12.3 => constants.%Destroy.facet.824 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.779 +// CHECK:STDOUT: %.loc28_12.5 => constants.%.c7d +// CHECK:STDOUT: %impl.elem0.loc28_12.2 => constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %specific_impl_fn.loc28_12.2 => constants.%Destroy.WithSelf.Op.403171.7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.89e, constants.%Z) { diff --git a/toolchain/check/testdata/interface/modifiers.carbon b/toolchain/check/testdata/interface/modifiers.carbon index 503e508ea5fe..580eed27b488 100644 --- a/toolchain/check/testdata/interface/modifiers.carbon +++ b/toolchain/check/testdata/interface/modifiers.carbon @@ -858,9 +858,9 @@ interface C { // CHECK:STDOUT: %CallMethod.type: type = fn_type @CallMethod [concrete] // CHECK:STDOUT: %CallMethod: %CallMethod.type = struct_value () [concrete] // CHECK:STDOUT: %CallMethod.specific_fn: = specific_function %CallMethod, @CallMethod(%DefaultMethod.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc11_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.115, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc11_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.115, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -918,13 +918,13 @@ interface C { // CHECK:STDOUT: %.loc12_15.2: %DefaultMethod.type = converted constants.%C, %DefaultMethod.facet.loc12_15.2 [concrete = constants.%DefaultMethod.facet] // CHECK:STDOUT: %CallMethod.specific_fn: = specific_function %CallMethod.ref, @CallMethod(constants.%DefaultMethod.facet) [concrete = constants.%CallMethod.specific_fn] // CHECK:STDOUT: %CallMethod.call: init %empty_tuple.type = call %CallMethod.specific_fn(%c.ref) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.115) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_15.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_15.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_15.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_15.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1042,9 +1042,9 @@ interface C { // CHECK:STDOUT: %CallMethod.type: type = fn_type @CallMethod [concrete] // CHECK:STDOUT: %CallMethod: %CallMethod.type = struct_value () [concrete] // CHECK:STDOUT: %CallMethod.specific_fn: = specific_function %CallMethod, @CallMethod(%DefaultMethod.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc14_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.115, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc14_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.115, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1133,13 +1133,13 @@ interface C { // CHECK:STDOUT: %.loc15_15.2: %DefaultMethod.type = converted constants.%C, %DefaultMethod.facet.loc15_15.2 [concrete = constants.%DefaultMethod.facet] // CHECK:STDOUT: %CallMethod.specific_fn: = specific_function %CallMethod.ref, @CallMethod(constants.%DefaultMethod.facet) [concrete = constants.%CallMethod.specific_fn] // CHECK:STDOUT: %CallMethod.call: init %empty_tuple.type = call %CallMethod.specific_fn(%c.ref) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.115) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_15.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_15.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_15.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_15.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1232,9 +1232,9 @@ interface C { // CHECK:STDOUT: %CallMethod.type: type = fn_type @CallMethod [concrete] // CHECK:STDOUT: %CallMethod: %CallMethod.type = struct_value () [concrete] // CHECK:STDOUT: %CallMethod.specific_fn: = specific_function %CallMethod, @CallMethod(%FinalMethod.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc11_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.115, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc11_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.115, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1292,13 +1292,13 @@ interface C { // CHECK:STDOUT: %.loc12_15.2: %FinalMethod.type = converted constants.%C, %FinalMethod.facet.loc12_15.2 [concrete = constants.%FinalMethod.facet] // CHECK:STDOUT: %CallMethod.specific_fn: = specific_function %CallMethod.ref, @CallMethod(constants.%FinalMethod.facet) [concrete = constants.%CallMethod.specific_fn] // CHECK:STDOUT: %CallMethod.call: init %empty_tuple.type = call %CallMethod.specific_fn(%c.ref) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.115) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_15.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_15.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_15.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_15.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon b/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon index 324b1290352d..fa8bb6628db8 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon @@ -928,7 +928,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- import_implicit_single_argument.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/import/method.carbon b/toolchain/check/testdata/interop/cpp/class/import/method.carbon index 76474b49abd5..260663e9871a 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/method.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/method.carbon @@ -515,10 +515,10 @@ fn Call(e: Cpp.ExplicitObjectParamOverloaded, n: i32, a: Cpp.AnotherOverloaded) // CHECK:STDOUT: %b.var_patt.dede8c.1: %pattern_type.f00 = var_pattern %b.patt.9fb99a.1 [concrete] // CHECK:STDOUT: %NoRefQualifier.F.type.8b6eff.2: type = fn_type @NoRefQualifier.F.2 [concrete] // CHECK:STDOUT: %NoRefQualifier.F.dbb5f5.2: %NoRefQualifier.F.type.8b6eff.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc9 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc9 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %WithRefQualifier: type = class_type @WithRefQualifier [concrete] // CHECK:STDOUT: %ptr.90c: type = ptr_type %WithRefQualifier [concrete] // CHECK:STDOUT: %a.patt.623a16.2: %pattern_type.6b6 = ref_binding_pattern a [concrete] @@ -588,18 +588,18 @@ fn Call(e: Cpp.ExplicitObjectParamOverloaded, n: i32, a: Cpp.AnotherOverloaded) // CHECK:STDOUT: %b.patt: %pattern_type.f00 = ref_binding_pattern b [concrete = constants.%b.patt.9fb99a.1] // CHECK:STDOUT: %b.var_patt: %pattern_type.f00 = var_pattern %b.patt [concrete = constants.%b.var_patt.dede8c.1] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9(%self.param: ref %ptr.d08) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9(%self.param: ref %ptr.d08) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -634,10 +634,10 @@ fn Call(e: Cpp.ExplicitObjectParamOverloaded, n: i32, a: Cpp.AnotherOverloaded) // CHECK:STDOUT: %b.patt: %pattern_type.f00 = ref_binding_pattern b [concrete = constants.%b.patt.9fb99a.2] // CHECK:STDOUT: %b.var_patt: %pattern_type.f00 = var_pattern %b.patt [concrete = constants.%b.var_patt.dede8c.2] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc16: = bound_method %b.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc16: init %empty_tuple.type = call %Destroy.Op.bound.loc16(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc15: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc15: init %empty_tuple.type = call %Destroy.Op.bound.loc15(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc16: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc16: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc16(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc15: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc15: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc15(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/enum/copy.carbon b/toolchain/check/testdata/interop/cpp/enum/copy.carbon index 475e033dc5a6..14264a6d3653 100644 --- a/toolchain/check/testdata/interop/cpp/enum/copy.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/copy.carbon @@ -40,17 +40,17 @@ fn F() { // CHECK:STDOUT: %a.var_patt: %pattern_type.926 = var_pattern %a.patt [concrete] // CHECK:STDOUT: %int_0: %Enum = int_value 0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Enum.Op.type: type = fn_type @Enum.Op [concrete] -// CHECK:STDOUT: %Enum.Op: %Enum.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d0d: = custom_witness (%Enum.Op), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.200: %Copy.type = facet_value %Enum, (%custom_witness.d0d) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.a18: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.200) [concrete] -// CHECK:STDOUT: %.1e6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a18, %Copy.facet.200 [concrete] -// CHECK:STDOUT: %Enum.Op.bound.ff6: = bound_method %int_0, %Enum.Op [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.7f5: type = fn_type @Copy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.416: %Copy.WithSelf.Op.type.7f5 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.bab: = custom_witness (%Copy.WithSelf.Op.416), @Copy [concrete] +// CHECK:STDOUT: %Copy.facet.512: %Copy.type = facet_value %Enum, (%custom_witness.bab) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.252: type = fn_type @Copy.WithSelf.Op.1, @Copy.WithSelf(%Copy.facet.512) [concrete] +// CHECK:STDOUT: %.1eb: type = fn_type_with_self_type %Copy.WithSelf.Op.type.252, %Copy.facet.512 [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.bound.996: = bound_method %int_0, %Copy.WithSelf.Op.416 [concrete] // CHECK:STDOUT: %int_1: %Enum = int_value 1 [concrete] -// CHECK:STDOUT: %Enum.Op.bound.d4f: = bound_method %int_1, %Enum.Op [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.bound.1a9: = bound_method %int_1, %Copy.WithSelf.Op.416 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc8 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -74,10 +74,10 @@ fn F() { // CHECK:STDOUT: %Enum.ref.loc8_24: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] // CHECK:STDOUT: %a.ref.loc8: %Enum = name_ref a, imports.%int_0 [concrete = constants.%int_0] // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem0.loc8: %.1e6 = impl_witness_access constants.%custom_witness.d0d, element0 [concrete = constants.%Enum.Op] -// CHECK:STDOUT: %bound_method.loc8: = bound_method %a.ref.loc8, %impl.elem0.loc8 [concrete = constants.%Enum.Op.bound.ff6] -// CHECK:STDOUT: %Enum.Op.call.loc8: init %Enum = call %bound_method.loc8(%a.ref.loc8) [concrete = constants.%int_0] -// CHECK:STDOUT: assign %a.var, %Enum.Op.call.loc8 +// CHECK:STDOUT: %impl.elem0.loc8: %.1eb = impl_witness_access constants.%custom_witness.bab, element0 [concrete = constants.%Copy.WithSelf.Op.416] +// CHECK:STDOUT: %bound_method.loc8: = bound_method %a.ref.loc8, %impl.elem0.loc8 [concrete = constants.%Copy.WithSelf.Op.bound.996] +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc8: init %Enum = call %bound_method.loc8(%a.ref.loc8) [concrete = constants.%int_0] +// CHECK:STDOUT: assign %a.var, %Copy.WithSelf.Op.call.loc8 // CHECK:STDOUT: %.loc8: type = splice_block %Enum.ref.loc8_13 [concrete = constants.%Enum] { // CHECK:STDOUT: %Cpp.ref.loc8_10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc8_13: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] @@ -91,14 +91,14 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc10: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] // CHECK:STDOUT: %b.ref: %Enum = name_ref b, imports.%int_1 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem0.loc10: %.1e6 = impl_witness_access constants.%custom_witness.d0d, element0 [concrete = constants.%Enum.Op] -// CHECK:STDOUT: %bound_method.loc10: = bound_method %b.ref, %impl.elem0.loc10 [concrete = constants.%Enum.Op.bound.d4f] -// CHECK:STDOUT: %Enum.Op.call.loc10: init %Enum = call %bound_method.loc10(%b.ref) [concrete = constants.%int_1] -// CHECK:STDOUT: assign %a.ref.loc10, %Enum.Op.call.loc10 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %impl.elem0.loc10: %.1eb = impl_witness_access constants.%custom_witness.bab, element0 [concrete = constants.%Copy.WithSelf.Op.416] +// CHECK:STDOUT: %bound_method.loc10: = bound_method %b.ref, %impl.elem0.loc10 [concrete = constants.%Copy.WithSelf.Op.bound.1a9] +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc10: init %Enum = call %bound_method.loc10(%b.ref) [concrete = constants.%int_1] +// CHECK:STDOUT: assign %a.ref.loc10, %Copy.WithSelf.Op.call.loc10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %Enum) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8(%self.param: ref %Enum) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/export/generic.carbon b/toolchain/check/testdata/interop/cpp/function/export/generic.carbon index 0f432e39ab39..5f55644fb91f 100644 --- a/toolchain/check/testdata/interop/cpp/function/export/generic.carbon +++ b/toolchain/check/testdata/interop/cpp/function/export/generic.carbon @@ -211,18 +211,18 @@ void CallUnsupportedF() { // CHECK:STDOUT: %self.patt.b4c: %pattern_type.b3a = wrapper_binding_pattern self, %self.param_patt.58e [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.WithSelf.Doit(%T) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc16_9.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.2: = custom_witness (%Destroy.Op.1a2547.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.f70: %Destroy.type = facet_value %B, (%custom_witness.df9cc1.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.cda: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.f70) [concrete] -// CHECK:STDOUT: %.3d9: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.cda, %Destroy.facet.f70 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.3: = custom_witness (%Destroy.Op.1a2547.3), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.6e5: %Destroy.type = facet_value %A, (%custom_witness.df9cc1.3) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.09e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.6e5) [concrete] -// CHECK:STDOUT: %.dca: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.09e, %Destroy.facet.6e5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc16_9.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.2: = custom_witness (%Destroy.WithSelf.Op.403171.2), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.5dd: %Destroy.type = facet_value %B, (%custom_witness.6c4ec3.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.bf9: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.5dd) [concrete] +// CHECK:STDOUT: %.9b8: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.bf9, %Destroy.facet.5dd [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.3: = custom_witness (%Destroy.WithSelf.Op.403171.3), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.288: %Destroy.type = facet_value %A, (%custom_witness.6c4ec3.3) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c82: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.288) [concrete] +// CHECK:STDOUT: %.528: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.c82, %Destroy.facet.288 [concrete] // CHECK:STDOUT: %t.param_patt.169: %pattern_type.9ef = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt.490: %pattern_type.9ef = wrapper_binding_pattern t, %t.param_patt.169 [concrete] // CHECK:STDOUT: %F.specific_fn.9d8: = specific_function %F, @F(%I.facet.f31) [concrete] @@ -456,28 +456,28 @@ void CallUnsupportedF() { // CHECK:STDOUT: // CHECK:STDOUT: fn @B.__destroy_thunk(%self.param: ref %B) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %impl.elem0: %.3d9 = impl_witness_access constants.%custom_witness.df9cc1.2, element0 [concrete = constants.%Destroy.Op.1a2547.2] +// CHECK:STDOUT: %impl.elem0: %.9b8 = impl_witness_access constants.%custom_witness.6c4ec3.2, element0 [concrete = constants.%Destroy.WithSelf.Op.403171.2] // CHECK:STDOUT: %bound_method: = bound_method %self.param, %impl.elem0 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %bound_method(%self.param) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method(%self.param) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_9.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_9.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_9.2(%self.param: ref %B) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_9.2(%self.param: ref %B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @A.__destroy_thunk(%self.param: ref %A) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %impl.elem0: %.dca = impl_witness_access constants.%custom_witness.df9cc1.3, element0 [concrete = constants.%Destroy.Op.1a2547.3] +// CHECK:STDOUT: %impl.elem0: %.528 = impl_witness_access constants.%custom_witness.6c4ec3.3, element0 [concrete = constants.%Destroy.WithSelf.Op.403171.3] // CHECK:STDOUT: %bound_method: = bound_method %self.param, %impl.elem0 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %bound_method(%self.param) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method(%self.param) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/arithmetic_types_bridged.carbon b/toolchain/check/testdata/interop/cpp/function/import/arithmetic_types_bridged.carbon index dc314dd3ba3e..9475ba62d4a5 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/arithmetic_types_bridged.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/arithmetic_types_bridged.carbon @@ -607,7 +607,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- import_bool_param_false.carbon // CHECK:STDOUT: @@ -661,7 +661,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- import_signed_char_param.carbon // CHECK:STDOUT: @@ -714,9 +714,9 @@ fn F() { // CHECK:STDOUT: %bound_method.cfe: = bound_method %int_-1.e55, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.309: ref %i8 = temporary invalid, %int_-1.e55 [concrete] // CHECK:STDOUT: %addr: %ptr.de5 = addr_of %.309 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.309, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_11.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.309, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -765,13 +765,13 @@ fn F() { // CHECK:STDOUT: %.loc8_11.6: ref %i8 = temporary %.loc8_11.5, %Int.as.Copy.impl.Op.call [concrete = constants.%.309] // CHECK:STDOUT: %addr: %ptr.de5 = addr_of %.loc8_11.6 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.309) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.309) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.1(%self.param: ref %i8.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.1(%self.param: ref %i8.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.2(%self.param: ref %i8) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.2(%self.param: ref %i8) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -818,9 +818,9 @@ fn F() { // CHECK:STDOUT: %bound_method.0fe: = bound_method %int_1.067, %UInt.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.599: ref %u8 = temporary invalid, %int_1.067 [concrete] // CHECK:STDOUT: %addr: %ptr.093 = addr_of %.599 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.599, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_11.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.599, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -861,13 +861,13 @@ fn F() { // CHECK:STDOUT: %.loc8_11.4: ref %u8 = temporary %.loc8_11.3, %UInt.as.Copy.impl.Op.call [concrete = constants.%.599] // CHECK:STDOUT: %addr: %ptr.093 = addr_of %.loc8_11.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.599) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.599) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.1(%self.param: ref %u8.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.1(%self.param: ref %u8.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.2(%self.param: ref %u8) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.2(%self.param: ref %u8) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -905,9 +905,9 @@ fn F() { // CHECK:STDOUT: %char.as.Copy.impl.Op.bound: = bound_method %int_88, %char.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %.2ff: ref %char = temporary invalid, %int_88 [concrete] // CHECK:STDOUT: %addr: %ptr.b46 = addr_of %.2ff [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_11.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.2ff, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_11.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.2ff, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -944,18 +944,18 @@ fn F() { // CHECK:STDOUT: %.loc8_11.5: ref %char = temporary %.loc8_11.4, %char.as.Copy.impl.Op.call [concrete = constants.%.2ff] // CHECK:STDOUT: %addr: %ptr.b46 = addr_of %.loc8_11.5 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.2ff) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.2ff) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.1(%self.param: ref %u8.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.1(%self.param: ref %u8.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.2(%self.param: ref %u8) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.2(%self.param: ref %u8) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.3(%self.param: ref %char) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.3(%self.param: ref %char) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1132,9 +1132,9 @@ fn F() { // CHECK:STDOUT: %bound_method.47b: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.597: ref %i16 = temporary invalid, %int_1.d17 [concrete] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.597 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.597, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_13.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.597, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1176,13 +1176,13 @@ fn F() { // CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.597] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.loc8_13.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1229,9 +1229,9 @@ fn F() { // CHECK:STDOUT: %bound_method.647: = bound_method %int_32767.6d2, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.0d8: ref %i16 = temporary invalid, %int_32767.6d2 [concrete] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.0d8 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.0d8, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_11.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.0d8, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1272,13 +1272,13 @@ fn F() { // CHECK:STDOUT: %.loc8_11.4: ref %i16 = temporary %.loc8_11.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.0d8] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.loc8_11.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.0d8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.0d8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1334,9 +1334,9 @@ fn F() { // CHECK:STDOUT: %bound_method.b0b: = bound_method %int_-32768.eb1, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.60a: ref %i16 = temporary invalid, %int_-32768.eb1 [concrete] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.60a [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.60a, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_11.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.60a, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1385,13 +1385,13 @@ fn F() { // CHECK:STDOUT: %.loc8_11.6: ref %i16 = temporary %.loc8_11.5, %Int.as.Copy.impl.Op.call [concrete = constants.%.60a] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.loc8_11.6 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.60a) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.60a) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_11.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_11.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1438,9 +1438,9 @@ fn F() { // CHECK:STDOUT: %bound_method.47b: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.597: ref %i16 = temporary invalid, %int_1.d17 [concrete] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.597 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.597, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_13.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.597, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1482,13 +1482,13 @@ fn F() { // CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.597] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.loc8_13.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1535,9 +1535,9 @@ fn F() { // CHECK:STDOUT: %bound_method.47b: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.597: ref %i16 = temporary invalid, %int_1.d17 [concrete] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.597 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.597, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_13.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.597, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1579,13 +1579,13 @@ fn F() { // CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.597] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.loc8_13.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1632,9 +1632,9 @@ fn F() { // CHECK:STDOUT: %bound_method.47b: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.597: ref %i16 = temporary invalid, %int_1.d17 [concrete] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.597 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.597, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_13.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.597, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1676,13 +1676,13 @@ fn F() { // CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.597] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.loc8_13.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1729,9 +1729,9 @@ fn F() { // CHECK:STDOUT: %bound_method.47b: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.597: ref %i16 = temporary invalid, %int_1.d17 [concrete] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.597 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.597, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_13.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.597, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1773,13 +1773,13 @@ fn F() { // CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.597] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.loc8_13.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_13.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_13.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1825,9 +1825,9 @@ fn F() { // CHECK:STDOUT: %bound_method.237: = bound_method %float.c55, %Float.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.b6a: ref %f16.907 = temporary invalid, %float.c55 [concrete] // CHECK:STDOUT: %addr: %ptr.8b7 = addr_of %.b6a [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.b6a, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.b6a, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1869,13 +1869,13 @@ fn F() { // CHECK:STDOUT: %.loc8_15.4: ref %f16.907 = temporary %.loc8_15.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.b6a] // CHECK:STDOUT: %addr: %ptr.8b7 = addr_of %.loc8_15.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.b6a) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.b6a) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.1(%self.param: ref %f16.3ab) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_15.1(%self.param: ref %f16.3ab) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f16.907) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_15.2(%self.param: ref %f16.907) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1921,9 +1921,9 @@ fn F() { // CHECK:STDOUT: %bound_method.89b: = bound_method %float.682, %Float.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.798: ref %f32.c73 = temporary invalid, %float.682 [concrete] // CHECK:STDOUT: %addr: %ptr.da4 = addr_of %.798 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.798, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.798, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1965,13 +1965,13 @@ fn F() { // CHECK:STDOUT: %.loc8_15.4: ref %f32.c73 = temporary %.loc8_15.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.798] // CHECK:STDOUT: %addr: %ptr.da4 = addr_of %.loc8_15.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.798) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.798) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_15.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_15.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2017,9 +2017,9 @@ fn F() { // CHECK:STDOUT: %bound_method.994: = bound_method %float.82c, %Float.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.2a9: ref %f64.dc1 = temporary invalid, %float.82c [concrete] // CHECK:STDOUT: %addr: %ptr.749 = addr_of %.2a9 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.2a9, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.2a9, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2061,13 +2061,13 @@ fn F() { // CHECK:STDOUT: %.loc8_15.4: ref %f64.dc1 = temporary %.loc8_15.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.2a9] // CHECK:STDOUT: %addr: %ptr.749 = addr_of %.loc8_15.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.2a9) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.2a9) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.1(%self.param: ref %f64.794) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_15.1(%self.param: ref %f64.794) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f64.dc1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_15.2(%self.param: ref %f64.dc1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2113,9 +2113,9 @@ fn F() { // CHECK:STDOUT: %bound_method.64d: = bound_method %float.ede, %Float.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %.4aa: ref %f128.e39 = temporary invalid, %float.ede [concrete] // CHECK:STDOUT: %addr: %ptr.e02 = addr_of %.4aa [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.4aa, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.4aa, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2157,13 +2157,13 @@ fn F() { // CHECK:STDOUT: %.loc8_15.4: ref %f128.e39 = temporary %.loc8_15.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.4aa] // CHECK:STDOUT: %addr: %ptr.e02 = addr_of %.loc8_15.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.4aa) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.4aa) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.1(%self.param: ref %f128.853) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_15.1(%self.param: ref %f128.853) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f128.e39) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_15.2(%self.param: ref %f128.e39) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2179,8 +2179,8 @@ fn F() { // CHECK:STDOUT: %ptr: type = ptr_type bool [concrete] // CHECK:STDOUT: %foo_bool__carbon_thunk.type: type = fn_type @foo_bool__carbon_thunk [concrete] // CHECK:STDOUT: %foo_bool__carbon_thunk: %foo_bool__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc8 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2211,12 +2211,12 @@ fn F() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %x.patt: %pattern_type.831 = value_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_37.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc8_37.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc8_37.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc8_37.3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- import_short_return.carbon // CHECK:STDOUT: @@ -2232,8 +2232,8 @@ fn F() { // CHECK:STDOUT: %ptr: type = ptr_type %i16 [concrete] // CHECK:STDOUT: %foo_short__carbon_thunk.type: type = fn_type @foo_short__carbon_thunk [concrete] // CHECK:STDOUT: %foo_short__carbon_thunk: %foo_short__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_37.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_37.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2264,14 +2264,14 @@ fn F() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %x.patt: %pattern_type.203 = value_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_37.3, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc8_37.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc8_37.3, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc8_37.3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_37.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_37.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_37.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_37.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2314,8 +2314,8 @@ fn F() { // CHECK:STDOUT: %ptr: type = ptr_type %f64.dc1 [concrete] // CHECK:STDOUT: %foo_double__carbon_thunk.type: type = fn_type @foo_double__carbon_thunk [concrete] // CHECK:STDOUT: %foo_double__carbon_thunk: %foo_double__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_38.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_38.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2346,14 +2346,14 @@ fn F() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %x.patt: %pattern_type.fb7 = value_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_38.3, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc8_38.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc8_38.3, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc8_38.3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_38.1(%self.param: ref %f64.794) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_38.1(%self.param: ref %f64.794) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_38.2(%self.param: ref %f64.dc1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_38.2(%self.param: ref %f64.dc1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon b/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon index 75b1f0244495..fa93f6658e9d 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon @@ -123,16 +123,16 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness.781: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.e46: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.781) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] +// CHECK:STDOUT: %MaybeUnformed.ddba: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.71e: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.caa: %ptr.as.OptionalStorage.impl.Some.type.71e = struct_value () [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.2a7: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.c23: %ptr.as.OptionalStorage.impl.None.type.2a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.4c4: %Destroy.type = facet_value %ptr.d08, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.b84: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4c4) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.dfc: %Destroy.type = facet_value %ptr.d08, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.620: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.dfc) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.0ce: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%i32) [concrete] // CHECK:STDOUT: %.0f8: type = maybe_unformed_type %ptr.d08 [concrete] // CHECK:STDOUT: %OptionalStorage.facet.f91: %OptionalStorage.type = facet_value %ptr.d08, (%OptionalStorage.impl_witness.0ce) [concrete] @@ -156,8 +156,8 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f01: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.5b3, %ImplicitAs.facet.ea2) [concrete] // CHECK:STDOUT: %.fcc: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f01, %ImplicitAs.facet.ea2 [concrete] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.8b6, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.f91, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc11_18.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc11_18.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %Cpp.nullptr_t: type = class_type @NullptrT [concrete] // CHECK:STDOUT: %uninit: %Cpp.nullptr_t = uninitialized_value [concrete] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.1b3: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%T.67d) [symbolic] @@ -171,8 +171,8 @@ fn F() { // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.60f [concrete] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.60f, @Cpp.nullptr_t.as.ImplicitAs.impl.Convert(%i32) [concrete] // CHECK:STDOUT: %bound_method.518: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.loc10_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.8: type = fn_type @Destroy.WithSelf.Op.loc10_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.8: %Destroy.WithSelf.Op.type.ef016f.8 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -188,7 +188,7 @@ fn F() { // CHECK:STDOUT: %TakesArray.cpp_overload_set.value: %TakesArray.cpp_overload_set.type = cpp_overload_set_value @TakesArray.cpp_overload_set [concrete = constants.%TakesArray.cpp_overload_set.value] // CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.0e9.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.0e9.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.1aa = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] -// CHECK:STDOUT: %Core.import_ref.509f: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddb)] +// CHECK:STDOUT: %Core.import_ref.509f: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddba)] // CHECK:STDOUT: %Core.import_ref.307: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.2a7) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None (constants.%ptr.as.OptionalStorage.impl.None.c23)] // CHECK:STDOUT: %Core.import_ref.fa7: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.71e) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some (constants.%ptr.as.OptionalStorage.impl.Some.caa)] // CHECK:STDOUT: %Core.import_ref.a90 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded @@ -259,8 +259,8 @@ fn F() { // CHECK:STDOUT: %.loc11_18.3: ref %Optional.5b3 = temporary %.loc11_18.2, %.loc11_18.1 // CHECK:STDOUT: %.loc11_18.4: %Optional.5b3 = acquire_value %.loc11_18.3 // CHECK:STDOUT: %TakesArray.call.loc11: init %empty_tuple.type = call imports.%TakesArray.decl(%.loc11_18.4) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_18.3, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_18.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %.loc11_18.3, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%.loc11_18.3) // CHECK:STDOUT: %Cpp.ref.loc13_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesArray.ref.loc13: %TakesArray.cpp_overload_set.type = name_ref TakesArray, imports.%TakesArray.cpp_overload_set.value [concrete = constants.%TakesArray.cpp_overload_set.value] // CHECK:STDOUT: %Cpp.ref.loc13_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -276,36 +276,36 @@ fn F() { // CHECK:STDOUT: %.loc13_21.3: ref %Optional.5b3 = temporary %.loc13_21.2, %.loc13_21.1 // CHECK:STDOUT: %.loc13_21.4: %Optional.5b3 = acquire_value %.loc13_21.3 // CHECK:STDOUT: %TakesArray.call.loc13: init %empty_tuple.type = call imports.%TakesArray.decl(%.loc13_21.4) -// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %.loc13_21.3, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call %Destroy.Op.bound.loc13(%.loc13_21.3) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %n.var, constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%n.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc13: = bound_method %.loc13_21.3, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc13(%.loc13_21.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %n.var, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%n.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_18.1(%self.param: ref %.0f8) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_18.1(%self.param: ref %.0f8) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_18.2(%self.param: ref %MaybeUnformed.b84) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_18.2(%self.param: ref %MaybeUnformed.620) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_18.3(%self.param: ref %Optional.5b3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_18.3(%self.param: ref %Optional.5b3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %array_type.d58) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.3(%self.param: ref %array_type.d58) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -357,8 +357,8 @@ fn F() { // CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %Cpp.nullptr_t: type = class_type @NullptrT [concrete] // CHECK:STDOUT: %uninit: %Cpp.nullptr_t = uninitialized_value [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc22_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc22_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -424,19 +424,19 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc37_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: // CHECK:STDOUT: %nullptr.ref: %Cpp.nullptr_t = name_ref nullptr, %uninit [concrete = constants.%uninit] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %n.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%n.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %n.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%n.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_3.3(%self.param: ref %array_type.d58) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_3.3(%self.param: ref %array_type.d58) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/full_semir.carbon b/toolchain/check/testdata/interop/cpp/function/import/full_semir.carbon index 143d30f4628c..9921065bb216 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/full_semir.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/full_semir.carbon @@ -117,9 +117,9 @@ fn F() { // CHECK:STDOUT: %.597: ref %i16 = temporary invalid, %int_1.d17 [concrete] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.597 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.597, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc7_13.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.597, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -193,7 +193,7 @@ fn F() { // CHECK:STDOUT: %.loc7_13.4: ref %i16 = temporary %.loc7_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.597] // CHECK:STDOUT: %addr: %ptr.686 = addr_of %.loc7_13.4 [concrete = constants.%addr] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.597) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -201,9 +201,9 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.686); // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_13.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_13.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_13.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_13.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -327,8 +327,8 @@ fn F() { // CHECK:STDOUT: %foo_short__carbon_thunk.type: type = fn_type @foo_short__carbon_thunk [concrete] // CHECK:STDOUT: %foo_short__carbon_thunk: %foo_short__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_37.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc7_37.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -387,8 +387,8 @@ fn F() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %x.patt: %pattern_type.203 = value_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc7_37.3, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc7_37.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc7_37.3, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc7_37.3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -396,9 +396,9 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @foo_short__carbon_thunk(%return.param: %ptr); // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_37.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_37.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_37.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_37.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/inline.carbon b/toolchain/check/testdata/interop/cpp/function/import/inline.carbon index f156275e9b4d..df11d31ea983 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/inline.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/inline.carbon @@ -215,9 +215,9 @@ fn MyF() { // CHECK:STDOUT: %ThunkOnBoth.cpp_overload_set.value: %ThunkOnBoth.cpp_overload_set.type = cpp_overload_set_value @ThunkOnBoth.cpp_overload_set [concrete] // CHECK:STDOUT: %ThunkOnBoth__carbon_thunk.type: type = fn_type @ThunkOnBoth__carbon_thunk [concrete] // CHECK:STDOUT: %ThunkOnBoth__carbon_thunk: %ThunkOnBoth__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc16_41.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.597, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc16_41.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.597, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -354,18 +354,18 @@ fn MyF() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %r4.patt: %pattern_type.203 = value_binding_pattern r4 [concrete = constants.%r4.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc16: = bound_method %.loc16_41.3, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc16_41: init %empty_tuple.type = call %Destroy.Op.bound.loc16(%.loc16_41.3) -// CHECK:STDOUT: %Destroy.Op.call.loc16_40: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) -// CHECK:STDOUT: %Destroy.Op.bound.loc15: = bound_method %.loc15_43.3, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc15: init %empty_tuple.type = call %Destroy.Op.bound.loc15(%.loc15_43.3) -// CHECK:STDOUT: %Destroy.Op.call.loc14: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc16: = bound_method %.loc16_41.3, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc16_41: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc16(%.loc16_41.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc16_40: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.597) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc15: = bound_method %.loc15_43.3, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc15: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc15(%.loc15_43.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc14: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_41.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_41.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_41.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_41.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon b/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon index 03e71c5a2192..9b62f0aa2ef7 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon @@ -504,8 +504,8 @@ fn F() { // CHECK:STDOUT: %non_nullable_param_foo.cpp_overload_set.value: %non_nullable_param_foo.cpp_overload_set.type = cpp_overload_set_value @non_nullable_param_foo.cpp_overload_set [concrete] // CHECK:STDOUT: %non_nullable_param_foo.type: type = fn_type @non_nullable_param_foo [concrete] // CHECK:STDOUT: %non_nullable_param_foo: %non_nullable_param_foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -547,14 +547,14 @@ fn F() { // CHECK:STDOUT: %.loc11_30.2: ref %ptr = converted %p.ref, %.loc11_30.1 // CHECK:STDOUT: %.loc11_30.3: %ptr = acquire_value %.loc11_30.2 // CHECK:STDOUT: %non_nullable_param_foo.call: init %empty_tuple.type = call imports.%non_nullable_param_foo.decl(%.loc11_30.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %p.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%p.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.1(%self.param: ref %ptr) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.1(%self.param: ref %ptr) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.2(%self.param: ref %const) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.2(%self.param: ref %const) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -590,8 +590,8 @@ fn F() { // CHECK:STDOUT: %ptr.2a5: type = ptr_type %ptr.40d [concrete] // CHECK:STDOUT: %double_non_nullable_param_foo.type: type = fn_type @double_non_nullable_param_foo [concrete] // CHECK:STDOUT: %double_non_nullable_param_foo: %double_non_nullable_param_foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc9 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: %DoubleNonNullableParamS.cpp_destructor.type: type = fn_type @DoubleNonNullableParamS.cpp_destructor [concrete] // CHECK:STDOUT: %DoubleNonNullableParamS.cpp_destructor: %DoubleNonNullableParamS.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -653,14 +653,14 @@ fn F() { // CHECK:STDOUT: %p.ref: ref %ptr.40d = name_ref p, %p // CHECK:STDOUT: %addr.loc10: %ptr.2a5 = addr_of %p.ref // CHECK:STDOUT: %double_non_nullable_param_foo.call: init %empty_tuple.type = call imports.%double_non_nullable_param_foo.decl(%addr.loc10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %p.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%p.var) // CHECK:STDOUT: %DoubleNonNullableParamS.cpp_destructor.bound: = bound_method %s.var, constants.%DoubleNonNullableParamS.cpp_destructor // CHECK:STDOUT: %DoubleNonNullableParamS.cpp_destructor.call: init %empty_tuple.type = call %DoubleNonNullableParamS.cpp_destructor.bound(%s.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.40d) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9(%self.param: ref %ptr.40d) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- import_non_nullable_pointer_to_const_param_using_const.carbon // CHECK:STDOUT: @@ -678,8 +678,8 @@ fn F() { // CHECK:STDOUT: %ptr.62c: type = ptr_type %const [concrete] // CHECK:STDOUT: %non_nullable_to_const_foo.type: type = fn_type @non_nullable_to_const_foo [concrete] // CHECK:STDOUT: %non_nullable_to_const_foo: %non_nullable_to_const_foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc10 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -719,12 +719,12 @@ fn F() { // CHECK:STDOUT: %s.ref: ref %const = name_ref s, %s // CHECK:STDOUT: %addr: %ptr.62c = addr_of %s.ref // CHECK:STDOUT: %non_nullable_to_const_foo.call: init %empty_tuple.type = call imports.%non_nullable_to_const_foo.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %s.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%s.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %s.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%s.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %const) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10(%self.param: ref %const) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -809,8 +809,8 @@ fn F() { // CHECK:STDOUT: %const_non_nullable_foo.cpp_overload_set.value: %const_non_nullable_foo.cpp_overload_set.type = cpp_overload_set_value @const_non_nullable_foo.cpp_overload_set [concrete] // CHECK:STDOUT: %const_non_nullable_foo.type: type = fn_type @const_non_nullable_foo [concrete] // CHECK:STDOUT: %const_non_nullable_foo: %const_non_nullable_foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -852,14 +852,14 @@ fn F() { // CHECK:STDOUT: %.loc11_30.2: ref %ptr = converted %p.ref, %.loc11_30.1 // CHECK:STDOUT: %.loc11_30.3: %ptr = acquire_value %.loc11_30.2 // CHECK:STDOUT: %const_non_nullable_foo.call: init %empty_tuple.type = call imports.%const_non_nullable_foo.decl(%.loc11_30.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %p.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%p.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.1(%self.param: ref %ptr) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.1(%self.param: ref %ptr) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.2(%self.param: ref %const) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.2(%self.param: ref %const) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -879,8 +879,8 @@ fn F() { // CHECK:STDOUT: %const_non_nullable_foo.cpp_overload_set.value: %const_non_nullable_foo.cpp_overload_set.type = cpp_overload_set_value @const_non_nullable_foo.cpp_overload_set [concrete] // CHECK:STDOUT: %const_non_nullable_foo.type: type = fn_type @const_non_nullable_foo [concrete] // CHECK:STDOUT: %const_non_nullable_foo: %const_non_nullable_foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc10 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -919,12 +919,12 @@ fn F() { // CHECK:STDOUT: %p.ref: ref %ptr = name_ref p, %p // CHECK:STDOUT: %.loc11: %ptr = acquire_value %p.ref // CHECK:STDOUT: %const_non_nullable_foo.call: init %empty_tuple.type = call imports.%const_non_nullable_foo.decl(%.loc11) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %p.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%p.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10(%self.param: ref %ptr) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- import_const_nullable_pointer_param_using_const.carbon // CHECK:STDOUT: @@ -950,11 +950,11 @@ fn F() { // CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.71e: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.caa: %ptr.as.OptionalStorage.impl.Some.type.71e = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.504: %Destroy.type = facet_value %ptr.13b, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.c09: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.504) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.147: %Destroy.type = facet_value %ptr.13b, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.9d6: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.147) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.cb6: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%ConstNullableParamS) [concrete] // CHECK:STDOUT: %.c5e2: type = maybe_unformed_type %ptr.13b [concrete] // CHECK:STDOUT: %OptionalStorage.facet.f04: %OptionalStorage.type = facet_value %ptr.13b, (%OptionalStorage.impl_witness.cb6) [concrete] @@ -984,10 +984,10 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.25f: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.7c0, %ImplicitAs.facet.7f0) [concrete] // CHECK:STDOUT: %.a05: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.25f, %ImplicitAs.facet.7f0 [concrete] // CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %const.as.ImplicitAs.impl.Convert.7ef, @const.as.ImplicitAs.impl.Convert(%Optional.7c0, %ImplicitAs.facet.464) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc11_26.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc11_26.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc10 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1055,29 +1055,29 @@ fn F() { // CHECK:STDOUT: %.loc11_26.4: ref %Optional.7c0 = temporary %.loc11_26.3, %.loc11_26.2 // CHECK:STDOUT: %.loc11_26.5: %Optional.7c0 = acquire_value %.loc11_26.4 // CHECK:STDOUT: %const_nullable_foo.call: init %empty_tuple.type = call imports.%const_nullable_foo.decl(%.loc11_26.5) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_26.4, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_26.4) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %.loc11_26.4, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%.loc11_26.4) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%p.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_26.1(%self.param: ref %.c5e2) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_26.1(%self.param: ref %.c5e2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_26.2(%self.param: ref %MaybeUnformed.c09) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_26.2(%self.param: ref %MaybeUnformed.9d6) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_26.3(%self.param: ref %Optional.7c0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_26.3(%self.param: ref %Optional.7c0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %const.2f4) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10(%self.param: ref %const.2f4) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1105,11 +1105,11 @@ fn F() { // CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.71e: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.caa: %ptr.as.OptionalStorage.impl.Some.type.71e = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.504: %Destroy.type = facet_value %ptr.13b, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.c09: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.504) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.147: %Destroy.type = facet_value %ptr.13b, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.9d6: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.147) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.cb6: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%ConstNullableParamS) [concrete] // CHECK:STDOUT: %.c5e2: type = maybe_unformed_type %ptr.13b [concrete] // CHECK:STDOUT: %OptionalStorage.facet.f04: %OptionalStorage.type = facet_value %ptr.13b, (%OptionalStorage.impl_witness.cb6) [concrete] @@ -1133,8 +1133,8 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.34b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.7c0, %ImplicitAs.facet.464) [concrete] // CHECK:STDOUT: %.f82: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.34b, %ImplicitAs.facet.464 [concrete] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.a46, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.f04, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc11_26.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc11_26.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1199,24 +1199,24 @@ fn F() { // CHECK:STDOUT: %.loc11_26.4: ref %Optional.7c0 = temporary %.loc11_26.3, %.loc11_26.2 // CHECK:STDOUT: %.loc11_26.5: %Optional.7c0 = acquire_value %.loc11_26.4 // CHECK:STDOUT: %const_nullable_foo.call: init %empty_tuple.type = call imports.%const_nullable_foo.decl(%.loc11_26.5) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_26.4, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_26.4) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %.loc11_26.4, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%.loc11_26.4) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%p.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_26.1(%self.param: ref %.c5e2) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_26.1(%self.param: ref %.c5e2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_26.2(%self.param: ref %MaybeUnformed.c09) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_26.2(%self.param: ref %MaybeUnformed.9d6) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_26.3(%self.param: ref %Optional.7c0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_26.3(%self.param: ref %Optional.7c0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1379,11 +1379,11 @@ fn F() { // CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.71e: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.caa: %ptr.as.OptionalStorage.impl.Some.type.71e = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.8f0: %Destroy.type = facet_value %ptr.1f0, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.2d7: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.8f0) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.ce0: %Destroy.type = facet_value %ptr.1f0, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.724: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.ce0) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.0df: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%NullableParamS) [concrete] // CHECK:STDOUT: %.280: type = maybe_unformed_type %ptr.1f0 [concrete] // CHECK:STDOUT: %OptionalStorage.facet.8bf: %OptionalStorage.type = facet_value %ptr.1f0, (%OptionalStorage.impl_witness.0df) [concrete] @@ -1407,8 +1407,8 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.767: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.e08, %ImplicitAs.facet.2d4) [concrete] // CHECK:STDOUT: %.642: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.767, %ImplicitAs.facet.2d4 [concrete] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.2e2, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.8bf, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc9_26.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc9_26.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %NullableParamS.cpp_destructor.type: type = fn_type @NullableParamS.cpp_destructor [concrete] // CHECK:STDOUT: %NullableParamS.cpp_destructor: %NullableParamS.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1475,24 +1475,24 @@ fn F() { // CHECK:STDOUT: %.loc9_26.3: ref %Optional.e08 = temporary %.loc9_26.2, %.loc9_26.1 // CHECK:STDOUT: %.loc9_26.4: %Optional.e08 = acquire_value %.loc9_26.3 // CHECK:STDOUT: %nullable_param_foo.call: init %empty_tuple.type = call imports.%nullable_param_foo.decl(%.loc9_26.4) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc9_26.3, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc9_26.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc9_26.3, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc9_26.3) // CHECK:STDOUT: %NullableParamS.cpp_destructor.bound: = bound_method %s.var, constants.%NullableParamS.cpp_destructor // CHECK:STDOUT: %NullableParamS.cpp_destructor.call: init %empty_tuple.type = call %NullableParamS.cpp_destructor.bound(%s.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_26.1(%self.param: ref %.280) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_26.1(%self.param: ref %.280) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_26.2(%self.param: ref %MaybeUnformed.2d7) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_26.2(%self.param: ref %MaybeUnformed.724) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_26.3(%self.param: ref %Optional.e08) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_26.3(%self.param: ref %Optional.e08) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1519,11 +1519,11 @@ fn F() { // CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.2a7: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.c23: %ptr.as.OptionalStorage.impl.None.type.2a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.8f0: %Destroy.type = facet_value %ptr.1f0, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.2d7: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.8f0) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.ce0: %Destroy.type = facet_value %ptr.1f0, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.724: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.ce0) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.0df: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%NullableParamS) [concrete] // CHECK:STDOUT: %.280: type = maybe_unformed_type %ptr.1f0 [concrete] // CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.1f0, (%OptionalStorage.impl_witness.0df) [concrete] @@ -1533,8 +1533,8 @@ fn F() { // CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.82d, @Optional.None(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %nullable_param_foo.type: type = fn_type @nullable_param_foo [concrete] // CHECK:STDOUT: %nullable_param_foo: %nullable_param_foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc8_66.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc8_66.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1594,22 +1594,22 @@ fn F() { // CHECK:STDOUT: %.loc8_66.2: ref %Optional.e08 = temporary %.loc8_66.1, %Optional.None.call // CHECK:STDOUT: %.loc8_66.3: %Optional.e08 = acquire_value %.loc8_66.2 // CHECK:STDOUT: %nullable_param_foo.call: init %empty_tuple.type = call imports.%nullable_param_foo.decl(%.loc8_66.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_66.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc8_66.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc8_66.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc8_66.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_66.1(%self.param: ref %.280) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_66.1(%self.param: ref %.280) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_66.2(%self.param: ref %MaybeUnformed.2d7) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_66.2(%self.param: ref %MaybeUnformed.724) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_66.3(%self.param: ref %Optional.e08) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_66.3(%self.param: ref %Optional.e08) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1642,11 +1642,11 @@ fn F() { // CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.71e: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.caa: %ptr.as.OptionalStorage.impl.Some.type.71e = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.8f0: %Destroy.type = facet_value %ptr.1f0, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.2d7: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.8f0) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.ce0: %Destroy.type = facet_value %ptr.1f0, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.724: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.ce0) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.0df: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%NullableParamS) [concrete] // CHECK:STDOUT: %.280: type = maybe_unformed_type %ptr.1f0 [concrete] // CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.1f0, (%OptionalStorage.impl_witness.0df) [concrete] @@ -1656,8 +1656,8 @@ fn F() { // CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Optional.Some.399, @Optional.Some(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %nullable_param_foo.type: type = fn_type @nullable_param_foo [concrete] // CHECK:STDOUT: %nullable_param_foo: %nullable_param_foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc9_68.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc9_68.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %NullableParamS.cpp_destructor.type: type = fn_type @NullableParamS.cpp_destructor [concrete] // CHECK:STDOUT: %NullableParamS.cpp_destructor: %NullableParamS.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1739,24 +1739,24 @@ fn F() { // CHECK:STDOUT: %.loc9_68.4: ref %Optional.e08 = temporary %.loc9_68.3, %Optional.Some.call // CHECK:STDOUT: %.loc9_68.5: %Optional.e08 = acquire_value %.loc9_68.4 // CHECK:STDOUT: %nullable_param_foo.call: init %empty_tuple.type = call imports.%nullable_param_foo.decl(%.loc9_68.5) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc9_68.4, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc9_68.4) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc9_68.4, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc9_68.4) // CHECK:STDOUT: %NullableParamS.cpp_destructor.bound: = bound_method %s.var, constants.%NullableParamS.cpp_destructor // CHECK:STDOUT: %NullableParamS.cpp_destructor.call: init %empty_tuple.type = call %NullableParamS.cpp_destructor.bound(%s.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_68.1(%self.param: ref %.280) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_68.1(%self.param: ref %.280) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_68.2(%self.param: ref %MaybeUnformed.2d7) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_68.2(%self.param: ref %MaybeUnformed.724) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_68.3(%self.param: ref %Optional.e08) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_68.3(%self.param: ref %Optional.e08) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1778,11 +1778,11 @@ fn F() { // CHECK:STDOUT: %Destroy.lookup_impl_witness.781: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.e46: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.781) [symbolic] // CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.8f0: %Destroy.type = facet_value %ptr.1f0, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.2d7: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.8f0) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.ce0: %Destroy.type = facet_value %ptr.1f0, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.724: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.ce0) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.0df: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%NullableParamS) [concrete] // CHECK:STDOUT: %.280: type = maybe_unformed_type %ptr.1f0 [concrete] // CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.1f0, (%OptionalStorage.impl_witness.0df) [concrete] @@ -1791,8 +1791,8 @@ fn F() { // CHECK:STDOUT: %nullable_param_get: %nullable_param_get.type = struct_value () [concrete] // CHECK:STDOUT: %nullable_param_foo.type: type = fn_type @nullable_param_foo [concrete] // CHECK:STDOUT: %nullable_param_foo: %nullable_param_foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc8_49.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc8_49.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1842,22 +1842,22 @@ fn F() { // CHECK:STDOUT: %.loc8_49.2: ref %Optional.e08 = temporary %.loc8_49.1, %nullable_param_get.call // CHECK:STDOUT: %.loc8_49.3: %Optional.e08 = acquire_value %.loc8_49.2 // CHECK:STDOUT: %nullable_param_foo.call: init %empty_tuple.type = call imports.%nullable_param_foo.decl(%.loc8_49.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_49.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc8_49.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc8_49.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc8_49.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_49.1(%self.param: ref %.280) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_49.1(%self.param: ref %.280) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_49.2(%self.param: ref %MaybeUnformed.2d7) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_49.2(%self.param: ref %MaybeUnformed.724) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_49.3(%self.param: ref %Optional.e08) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_49.3(%self.param: ref %Optional.e08) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1962,11 +1962,11 @@ fn F() { // CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.71e: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.caa: %ptr.as.OptionalStorage.impl.Some.type.71e = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.25b: %Destroy.type = facet_value %ptr.6cb, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.dcc: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.25b) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.0ae: %Destroy.type = facet_value %ptr.6cb, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.115: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.0ae) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.5d7: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%DeducedPointerS) [concrete] // CHECK:STDOUT: %.fb1: type = maybe_unformed_type %ptr.6cb [concrete] // CHECK:STDOUT: %OptionalStorage.facet.822: %OptionalStorage.type = facet_value %ptr.6cb, (%OptionalStorage.impl_witness.5d7) [concrete] @@ -1993,8 +1993,8 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8a9: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.1ac, %ImplicitAs.facet.032) [concrete] // CHECK:STDOUT: %.96f: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8a9, %ImplicitAs.facet.032 [concrete] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.8c6, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.822, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc11_14.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc11_14.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %a.patt: %pattern_type.548 = value_binding_pattern a [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.type: type = cpp_overload_set_type @Indirect.cpp_overload_set [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.value: %Indirect.cpp_overload_set.type = cpp_overload_set_value @Indirect.cpp_overload_set [concrete] @@ -2090,8 +2090,8 @@ fn F() { // CHECK:STDOUT: %.loc11_14.3: ref %Optional.1ac = temporary %.loc11_14.2, %.loc11_14.1 // CHECK:STDOUT: %.loc11_14.4: %Optional.1ac = acquire_value %.loc11_14.3 // CHECK:STDOUT: %Direct.call: init %Optional.1ac = call imports.%Direct.decl(%.loc11_14.4) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_14.3, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_14.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %.loc11_14.3, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%.loc11_14.3) // CHECK:STDOUT: %Cpp.ref.loc13_55: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Indirect.ref: %Indirect.cpp_overload_set.type = name_ref Indirect, imports.%Indirect.cpp_overload_set.value [concrete = constants.%Indirect.cpp_overload_set.value] // CHECK:STDOUT: %.loc13_69.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -2122,24 +2122,24 @@ fn F() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type.548 = value_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %.loc13_93.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call %Destroy.Op.bound.loc13(%.loc13_93.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc13: = bound_method %.loc13_93.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc13(%.loc13_93.2) // CHECK:STDOUT: %DeducedPointerS.cpp_destructor.bound: = bound_method %s.var, constants.%DeducedPointerS.cpp_destructor // CHECK:STDOUT: %DeducedPointerS.cpp_destructor.call: init %empty_tuple.type = call %DeducedPointerS.cpp_destructor.bound(%s.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_14.1(%self.param: ref %.fb1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_14.1(%self.param: ref %.fb1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_14.2(%self.param: ref %MaybeUnformed.dcc) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_14.2(%self.param: ref %MaybeUnformed.115) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_14.3(%self.param: ref %Optional.1ac) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_14.3(%self.param: ref %Optional.1ac) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/return.carbon b/toolchain/check/testdata/interop/cpp/function/import/return.carbon index f9e054a95095..189ab71d293e 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/return.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/return.carbon @@ -122,8 +122,8 @@ fn Var() { // CHECK:STDOUT: %foo1__carbon_thunk.type: type = fn_type @foo1__carbon_thunk [concrete] // CHECK:STDOUT: %foo1__carbon_thunk: %foo1__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc11_22.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc11_22.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %foo2.cpp_overload_set.type: type = cpp_overload_set_type @foo2.cpp_overload_set [concrete] // CHECK:STDOUT: %foo2.cpp_overload_set.value: %foo2.cpp_overload_set.type = cpp_overload_set_value @foo2.cpp_overload_set [concrete] // CHECK:STDOUT: %foo2.type: type = fn_type @foo2 [concrete] @@ -162,8 +162,8 @@ fn Var() { // CHECK:STDOUT: %.loc11_22.3: ref %i16 = temporary %.loc11_22.1, %.loc11_22.2 // CHECK:STDOUT: %.loc11_22.4: %i16 = acquire_value %.loc11_22.3 // CHECK:STDOUT: %IngestI16.call: init %empty_tuple.type = call %IngestI16.ref(%.loc11_22.4) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc11_22.3, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc11_22.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc11_22.3, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc11_22.3) // CHECK:STDOUT: %IngestI32.ref: %IngestI32.type = name_ref IngestI32, file.%IngestI32.decl [concrete = constants.%IngestI32] // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo2.ref: %foo2.cpp_overload_set.type = name_ref foo2, imports.%foo2.cpp_overload_set.value [concrete = constants.%foo2.cpp_overload_set.value] @@ -174,9 +174,9 @@ fn Var() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_22.1(%self.param: ref %i16.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_22.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_22.2(%self.param: ref %i16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_22.2(%self.param: ref %i16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -187,13 +187,13 @@ fn Var() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Cpp.nullptr_t: type = class_type @NullptrT [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] // CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.49e: %Destroy.type = facet_value %ptr.00a, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.399: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.49e) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.fd7: %Destroy.type = facet_value %ptr.00a, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.fd7) [concrete] // CHECK:STDOUT: %.a7d: type = maybe_unformed_type %ptr.00a [concrete] // CHECK:STDOUT: %pattern_type.af6: type = pattern_type %Cpp.nullptr_t [concrete] // CHECK:STDOUT: %c.patt: %pattern_type.af6 = ref_binding_pattern c [concrete] @@ -203,8 +203,8 @@ fn Var() { // CHECK:STDOUT: %ptr.ab6: type = ptr_type %Cpp.nullptr_t [concrete] // CHECK:STDOUT: %ReturnNullPtr__carbon_thunk.type: type = fn_type @ReturnNullPtr__carbon_thunk [concrete] // CHECK:STDOUT: %ReturnNullPtr__carbon_thunk: %ReturnNullPtr__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc11_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc11_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -240,24 +240,22 @@ fn Var() { // CHECK:STDOUT: %c.patt: %pattern_type.af6 = ref_binding_pattern c [concrete = constants.%c.patt] // CHECK:STDOUT: %c.var_patt: %pattern_type.af6 = var_pattern %c.patt [concrete = constants.%c.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%c.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %ptr.00a) = "no_op"; -// CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %.a7d) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %.a7d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %MaybeUnformed.399) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %MaybeUnformed.ddb) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.4(%self.param: ref %Cpp.nullptr_t) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.3(%self.param: ref %Cpp.nullptr_t) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -369,8 +367,8 @@ fn Var() { // CHECK:STDOUT: %ReturnU32.type: type = fn_type @ReturnU32 [concrete] // CHECK:STDOUT: %ReturnU32: %ReturnU32.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc9_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -425,16 +423,16 @@ fn Var() { // CHECK:STDOUT: %my_u32.patt: %pattern_type.668 = ref_binding_pattern my_u32 [concrete = constants.%my_u32.patt] // CHECK:STDOUT: %my_u32.var_patt: %pattern_type.668 = var_pattern %my_u32.patt [concrete = constants.%my_u32.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %my_u32.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%my_u32.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %my_u32.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%my_u32.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ReturnU32() -> out %return.param: %u32; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %u32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %u32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %u32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %u32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon b/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon index 86cee5bee4e0..490c88768a50 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon @@ -208,14 +208,14 @@ fn F() { // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.781: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.e46: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.781) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] +// CHECK:STDOUT: %MaybeUnformed.ddba: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.71e: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.caa: %ptr.as.OptionalStorage.impl.Some.type.71e = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.49e: %Destroy.type = facet_value %ptr.00a, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.399: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.49e) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.fd7: %Destroy.type = facet_value %ptr.00a, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.ddbd: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.fd7) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.d51: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] // CHECK:STDOUT: %.a7d: type = maybe_unformed_type %ptr.00a [concrete] // CHECK:STDOUT: %OptionalStorage.facet.427: %OptionalStorage.type = facet_value %ptr.00a, (%OptionalStorage.impl_witness.d51) [concrete] @@ -239,8 +239,8 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.002: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.14b, %ImplicitAs.facet.3be) [concrete] // CHECK:STDOUT: %.fde: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.002, %ImplicitAs.facet.3be [concrete] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.f63, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.427, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc10_26.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc10_26.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -250,7 +250,7 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %foo_nullable_param.cpp_overload_set.value: %foo_nullable_param.cpp_overload_set.type = cpp_overload_set_value @foo_nullable_param.cpp_overload_set [concrete = constants.%foo_nullable_param.cpp_overload_set.value] -// CHECK:STDOUT: %Core.import_ref.509: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddb)] +// CHECK:STDOUT: %Core.import_ref.509: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddba)] // CHECK:STDOUT: %Core.import_ref.105 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.fa7: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.71e) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some (constants.%ptr.as.OptionalStorage.impl.Some.caa)] // CHECK:STDOUT: %Core.import_ref.a90 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded @@ -289,22 +289,22 @@ fn F() { // CHECK:STDOUT: %.loc10_26.3: ref %Optional.14b = temporary %.loc10_26.2, %.loc10_26.1 // CHECK:STDOUT: %.loc10_26.4: %Optional.14b = acquire_value %.loc10_26.3 // CHECK:STDOUT: %foo_nullable_param.call: init %empty_tuple.type = call imports.%foo_nullable_param.decl(%.loc10_26.4) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_26.3, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc10_26.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc10_26.3, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc10_26.3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_26.1(%self.param: ref %.a7d) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_26.1(%self.param: ref %.a7d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_26.2(%self.param: ref %MaybeUnformed.399) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_26.2(%self.param: ref %MaybeUnformed.ddbd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_26.3(%self.param: ref %Optional.14b) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_26.3(%self.param: ref %Optional.14b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -328,14 +328,14 @@ fn F() { // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.781: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.e46: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.781) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] +// CHECK:STDOUT: %MaybeUnformed.ddba: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.2a7: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.c23: %ptr.as.OptionalStorage.impl.None.type.2a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.49e: %Destroy.type = facet_value %ptr.00a, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.399: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.49e) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.fd7: %Destroy.type = facet_value %ptr.00a, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.ddbd: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.fd7) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.d51: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] // CHECK:STDOUT: %.a7d: type = maybe_unformed_type %ptr.00a [concrete] // CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.00a, (%OptionalStorage.impl_witness.d51) [concrete] @@ -345,8 +345,8 @@ fn F() { // CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.aa9, @Optional.None(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %foo_null_param.type: type = fn_type @foo_null_param [concrete] // CHECK:STDOUT: %foo_null_param: %foo_null_param.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc10_52.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc10_52.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -372,7 +372,7 @@ fn F() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.VoidBase: type = import_ref Core//prelude/types/cpp/void, VoidBase, loaded [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %Core.import_ref.509: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddb)] +// CHECK:STDOUT: %Core.import_ref.509: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddba)] // CHECK:STDOUT: %Core.import_ref.307: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.2a7) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None (constants.%ptr.as.OptionalStorage.impl.None.c23)] // CHECK:STDOUT: %Core.import_ref.c9a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.a90 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded @@ -413,22 +413,22 @@ fn F() { // CHECK:STDOUT: %.loc10_52.2: ref %Optional.14b = temporary %.loc10_52.1, %Optional.None.call // CHECK:STDOUT: %.loc10_52.3: %Optional.14b = acquire_value %.loc10_52.2 // CHECK:STDOUT: %foo_null_param.call: init %empty_tuple.type = call imports.%foo_null_param.decl(%.loc10_52.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_52.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc10_52.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc10_52.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc10_52.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_52.1(%self.param: ref %.a7d) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_52.1(%self.param: ref %.a7d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_52.2(%self.param: ref %MaybeUnformed.399) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_52.2(%self.param: ref %MaybeUnformed.ddbd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_52.3(%self.param: ref %Optional.14b) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_52.3(%self.param: ref %Optional.14b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -447,12 +447,12 @@ fn F() { // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.781: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.e46: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.781) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.1: = custom_witness (%Destroy.Op.1a2547.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.49e: %Destroy.type = facet_value %ptr.00a, (%custom_witness.df9cc1.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.399: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.49e) [concrete] +// CHECK:STDOUT: %MaybeUnformed.ddba: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.fd7: %Destroy.type = facet_value %ptr.00a, (%custom_witness.6c4ec3.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.ddbd: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.fd7) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.d51: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] // CHECK:STDOUT: %.a7d: type = maybe_unformed_type %ptr.00a [concrete] // CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.00a, (%OptionalStorage.impl_witness.d51) [concrete] @@ -463,8 +463,8 @@ fn F() { // CHECK:STDOUT: %foo_nullable_return.cpp_overload_set.value: %foo_nullable_return.cpp_overload_set.type = cpp_overload_set_value @foo_nullable_return.cpp_overload_set [concrete] // CHECK:STDOUT: %foo_nullable_return.type: type = fn_type @foo_nullable_return [concrete] // CHECK:STDOUT: %foo_nullable_return: %foo_nullable_return.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc10_73.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc10_73.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -488,7 +488,7 @@ fn F() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.VoidBase: type = import_ref Core//prelude/types/cpp/void, VoidBase, loaded [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %Core.import_ref.509: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddb)] +// CHECK:STDOUT: %Core.import_ref.509: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddba)] // CHECK:STDOUT: %Core.import_ref.105 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.c9a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.a90 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded @@ -529,22 +529,22 @@ fn F() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %output.patt: %pattern_type.65e = value_binding_pattern output [concrete = constants.%output.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_73.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc10_73.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc10_73.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc10_73.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_73.1(%self.param: ref %.a7d) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_73.1(%self.param: ref %.a7d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_73.2(%self.param: ref %MaybeUnformed.399) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_73.2(%self.param: ref %MaybeUnformed.ddbd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_73.3(%self.param: ref %Optional.14b) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_73.3(%self.param: ref %Optional.14b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -567,8 +567,8 @@ fn F() { // CHECK:STDOUT: %Invoke_pointer.cpp_overload_set.value: %Invoke_pointer.cpp_overload_set.type = cpp_overload_set_value @Invoke_pointer.cpp_overload_set [concrete] // CHECK:STDOUT: %Invoke_pointer.type: type = fn_type @Invoke_pointer [concrete] // CHECK:STDOUT: %Invoke_pointer: %Invoke_pointer.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc11 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -615,12 +615,12 @@ fn F() { // CHECK:STDOUT: %non_nullable_pointer.ref: ref %ptr.6f9 = name_ref non_nullable_pointer, %non_nullable_pointer // CHECK:STDOUT: %.loc12: %ptr.6f9 = acquire_value %non_nullable_pointer.ref // CHECK:STDOUT: %Invoke_pointer.call: init %empty_tuple.type = call imports.%Invoke_pointer.decl(%.loc12) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %non_nullable_pointer.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%non_nullable_pointer.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %non_nullable_pointer.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%non_nullable_pointer.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.6f9) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11(%self.param: ref %ptr.6f9) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- non_nullable_const.carbon // CHECK:STDOUT: @@ -640,8 +640,8 @@ fn F() { // CHECK:STDOUT: %Invoke_const.cpp_overload_set.value: %Invoke_const.cpp_overload_set.type = cpp_overload_set_value @Invoke_const.cpp_overload_set [concrete] // CHECK:STDOUT: %Invoke_const.type: type = fn_type @Invoke_const [concrete] // CHECK:STDOUT: %Invoke_const: %Invoke_const.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc11 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -688,10 +688,10 @@ fn F() { // CHECK:STDOUT: %const_void_pointer.ref: ref %ptr = name_ref const_void_pointer, %const_void_pointer // CHECK:STDOUT: %.loc12: %ptr = acquire_value %const_void_pointer.ref // CHECK:STDOUT: %Invoke_const.call: init %empty_tuple.type = call imports.%Invoke_const.decl(%.loc12) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %const_void_pointer.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%const_void_pointer.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %const_void_pointer.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%const_void_pointer.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11(%self.param: ref %ptr) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/impls/destroy.carbon b/toolchain/check/testdata/interop/cpp/impls/destroy.carbon index f6107046bc4a..039c4bb7f9e4 100644 --- a/toolchain/check/testdata/interop/cpp/impls/destroy.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/destroy.carbon @@ -399,8 +399,8 @@ fn F() { // CHECK:STDOUT: %empty_struct.ec1: %.a6c = struct_value () [concrete] // CHECK:STDOUT: %ProtectedDestructor.val: %ProtectedDestructor = struct_value () [concrete] // CHECK:STDOUT: %Derived.val: %Derived = struct_value (%ProtectedDestructor.val) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc20_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @DestroyClassWithProtectedBaseDestructor() { @@ -421,17 +421,17 @@ fn F() { // CHECK:STDOUT: %a.patt: %pattern_type.746 = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.746 = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.1(%self.param: ref %struct_type.base.454) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.1(%self.param: ref %struct_type.base.454) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.2(%self.param: ref %Derived) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc20_3.2(%self.param: ref %Derived) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -454,8 +454,8 @@ fn F() { // CHECK:STDOUT: %empty_struct.d8b: %.c73 = struct_value () [concrete] // CHECK:STDOUT: %PrivateDestructor.val: %PrivateDestructor = struct_value () [concrete] // CHECK:STDOUT: %Derived.val: %Derived = struct_value (%PrivateDestructor.val) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc21_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc21_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @DestroyClassWithPrivateBaseDestructor() { @@ -476,17 +476,17 @@ fn F() { // CHECK:STDOUT: %a.patt: %pattern_type.746 = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.746 = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21_3.1(%self.param: ref %struct_type.base.9aa) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc21_3.1(%self.param: ref %struct_type.base.9aa) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21_3.2(%self.param: ref %Derived) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc21_3.2(%self.param: ref %Derived) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/macros/macros.carbon b/toolchain/check/testdata/interop/cpp/macros/macros.carbon index 65f08b6dd5af..2dad837f9adc 100644 --- a/toolchain/check/testdata/interop/cpp/macros/macros.carbon +++ b/toolchain/check/testdata/interop/cpp/macros/macros.carbon @@ -1129,8 +1129,8 @@ let _: C(1) = {} as C(Cpp.COUNT); // CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete] // CHECK:STDOUT: %n.patt: %pattern_type.240 = ref_binding_pattern n [concrete] // CHECK:STDOUT: %n.var_patt: %pattern_type.240 = var_pattern %n.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc10_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc10_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1198,19 +1198,19 @@ let _: C(1) = {} as C(Cpp.COUNT); // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1816,14 +1816,14 @@ let _: C(1) = {} as C(Cpp.COUNT); // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.781: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.e46: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.781) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.ddb: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] +// CHECK:STDOUT: %MaybeUnformed.ddba: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.e46) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.2a7: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.c23: %ptr.as.OptionalStorage.impl.None.type.2a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.2: = custom_witness (%Destroy.Op.1a2547.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.4c4: %Destroy.type = facet_value %ptr.d08, (%custom_witness.df9cc1.2) [concrete] -// CHECK:STDOUT: %MaybeUnformed.b84: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4c4) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.2: = custom_witness (%Destroy.WithSelf.Op.403171.2), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.dfc: %Destroy.type = facet_value %ptr.d08, (%custom_witness.6c4ec3.2) [concrete] +// CHECK:STDOUT: %MaybeUnformed.620: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.dfc) [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.0ce: = impl_witness imports.%OptionalStorage.impl_witness_table.110, @ptr.as.OptionalStorage.impl(%i32) [concrete] // CHECK:STDOUT: %.0f8: type = maybe_unformed_type %ptr.d08 [concrete] // CHECK:STDOUT: %OptionalStorage.facet.f91: %OptionalStorage.type = facet_value %ptr.d08, (%OptionalStorage.impl_witness.0ce) [concrete] @@ -1842,8 +1842,8 @@ let _: C(1) = {} as C(Cpp.COUNT); // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.60f [concrete] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.60f, @Cpp.nullptr_t.as.ImplicitAs.impl.Convert(%i32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc11_14.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc11_14.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1853,7 +1853,7 @@ let _: C(1) = {} as C(Cpp.COUNT); // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %Core.import_ref.509: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddb)] +// CHECK:STDOUT: %Core.import_ref.509: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.ddba)] // CHECK:STDOUT: %Core.import_ref.307: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.2a7) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None (constants.%ptr.as.OptionalStorage.impl.None.c23)] // CHECK:STDOUT: %Core.import_ref.c9a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.a90 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded @@ -1893,22 +1893,22 @@ let _: C(1) = {} as C(Cpp.COUNT); // CHECK:STDOUT: %.loc11_14.3: ref %Optional.5b3 = temporary %.loc11_14.2, %.loc11_14.1 // CHECK:STDOUT: %.loc11_14.4: %Optional.5b3 = acquire_value %.loc11_14.3 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc11_14.4) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc11_14.3, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc11_14.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc11_14.3, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc11_14.3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_14.1(%self.param: ref %.0f8) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_14.1(%self.param: ref %.0f8) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_14.2(%self.param: ref %MaybeUnformed.b84) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_14.2(%self.param: ref %MaybeUnformed.620) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_14.3(%self.param: ref %Optional.5b3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_14.3(%self.param: ref %Optional.5b3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon b/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon index b7d43a9b1203..bf7a6bda17c0 100644 --- a/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon @@ -361,10 +361,10 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %impl.elem1.b05: %.a30 = impl_witness_access %AddWith.lookup_impl_witness.2b1, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn.78d: = specific_impl_function %impl.elem1.b05, @AddWith.WithSelf.Op(%U.as_type.b61, %AddWith.facet.fea) [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Result, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3ece9.2: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3ece9.2: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Result) [symbolic] // CHECK:STDOUT: %.53a: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.d3ece9.2, %Result [symbolic] // CHECK:STDOUT: %impl.elem0.0f9: %.53a = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.afc: = specific_impl_function %impl.elem0.0f9, @Destroy.WithSelf.Op(%Result) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.afc: = specific_impl_function %impl.elem0.0f9, @Destroy.WithSelf.Op.1(%Result) [symbolic] // CHECK:STDOUT: %SubWith.type.ddc: type = facet_type <@SubWith.1, @SubWith.1(%Other)> [symbolic] // CHECK:STDOUT: %Self.d6b: %SubWith.type.ddc = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %SubWith.assoc_type.b0b: type = assoc_entity_type @SubWith.1, @SubWith.1(%Other) [symbolic] @@ -525,18 +525,18 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %AddWith.lookup_impl_witness.131: = lookup_impl_witness %.Self.45a, @AddWith.1, @AddWith.1(%Int16) [symbolic_self] // CHECK:STDOUT: %impl.elem0.28c: type = impl_witness_access %AddWith.lookup_impl_witness.131, element0 [symbolic_self] // CHECK:STDOUT: %facet_type.225: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16) where %impl.elem0.28c = %Int16> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc176_34.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.2: = custom_witness (%Destroy.Op.1a2547.2), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc176_34.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.2: = custom_witness (%Destroy.WithSelf.Op.403171.2), @Destroy [concrete] // CHECK:STDOUT: %AddWith.type.b62: type = facet_type <@AddWith.1, @AddWith.1(%Int16)> [concrete] // CHECK:STDOUT: %AddWith.assoc_type.c72: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int16) [concrete] // CHECK:STDOUT: %assoc0.261: %AddWith.assoc_type.c72 = assoc_entity element0, imports.%Core.import_ref.91f8 [concrete] // CHECK:STDOUT: %assoc1.006: %AddWith.assoc_type.c72 = assoc_entity element1, imports.%Core.import_ref.3cf [concrete] // CHECK:STDOUT: %Op.type.442b68.1: type = fn_type @Op.1 [concrete] // CHECK:STDOUT: %Op.72717c.1: %Op.type.442b68.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.e5c: %Destroy.type = facet_value %i16, (%custom_witness.df9cc1.2) [concrete] +// CHECK:STDOUT: %Destroy.facet.9a3: %Destroy.type = facet_value %i16, (%custom_witness.6c4ec3.2) [concrete] // CHECK:STDOUT: %custom_witness.248: = custom_witness (%Int16, %Op.72717c.1), @AddWith.1, @AddWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.696: %facet_type.225 = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.248) [concrete] +// CHECK:STDOUT: %facet_value.1dc: %facet_type.225 = facet_value %i16, (%custom_witness.6c4ec3.2, %custom_witness.248) [concrete] // CHECK:STDOUT: %.Self.frozen.7e3: %facet_type.297 = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %complete_type.a82: = complete_type_witness %facet_type.297 [concrete] // CHECK:STDOUT: %.Self.frozen.as_type.85e: type = facet_access_type %.Self.frozen.7e3 [symbolic_self] @@ -548,7 +548,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %result.patt.a31: %pattern_type.785 = wrapper_binding_pattern result, %result.param_patt.be6 [concrete] // CHECK:STDOUT: %y.param_patt.418: %pattern_type.785 = value_param_pattern [concrete] // CHECK:STDOUT: %y.patt.890: %pattern_type.785 = wrapper_binding_pattern y, %y.param_patt.418 [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.9d5: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.2cc) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.9d5: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.2cc) [concrete] // CHECK:STDOUT: %.6da: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.9d5, %Destroy.facet.2cc [concrete] // CHECK:STDOUT: %facet_type.b15: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16)> [concrete] // CHECK:STDOUT: %.Self.415: %facet_type.b15 = symbolic_binding .Self [symbolic_self] @@ -562,7 +562,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Op.type.442b68.2: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.72717c.2: %Op.type.442b68.2 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.f14: = custom_witness (%Int16, %Op.72717c.2), @SubWith.1, @SubWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.031: %facet_type.b71 = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.f14) [concrete] +// CHECK:STDOUT: %facet_value.a29: %facet_type.b71 = facet_value %i16, (%custom_witness.6c4ec3.2, %custom_witness.f14) [concrete] // CHECK:STDOUT: %.Self.frozen.581: %facet_type.b15 = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %complete_type.647: = complete_type_witness %facet_type.b15 [concrete] // CHECK:STDOUT: %.Self.frozen.as_type.092: type = facet_access_type %.Self.frozen.581 [symbolic_self] @@ -582,7 +582,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Op.type.442b68.3: type = fn_type @Op.3 [concrete] // CHECK:STDOUT: %Op.72717c.3: %Op.type.442b68.3 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.6bd: = custom_witness (%Int16, %Op.72717c.3), @MulWith.1, @MulWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.920: %facet_type.662 = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.6bd) [concrete] +// CHECK:STDOUT: %facet_value.ba0: %facet_type.662 = facet_value %i16, (%custom_witness.6c4ec3.2, %custom_witness.6bd) [concrete] // CHECK:STDOUT: %.Self.frozen.05e: %facet_type.a64 = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %complete_type.4d3: = complete_type_witness %facet_type.a64 [concrete] // CHECK:STDOUT: %.Self.frozen.as_type.2d1: type = facet_access_type %.Self.frozen.05e [symbolic_self] @@ -602,7 +602,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Op.type.442b68.4: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.72717c.4: %Op.type.442b68.4 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.22c: = custom_witness (%Int16, %Op.72717c.4), @DivWith.1, @DivWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.ce6: %facet_type.bd6 = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.22c) [concrete] +// CHECK:STDOUT: %facet_value.de3: %facet_type.bd6 = facet_value %i16, (%custom_witness.6c4ec3.2, %custom_witness.22c) [concrete] // CHECK:STDOUT: %.Self.frozen.ecc: %facet_type.0b4 = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %complete_type.acc: = complete_type_witness %facet_type.0b4 [concrete] // CHECK:STDOUT: %.Self.frozen.as_type.851: type = facet_access_type %.Self.frozen.ecc [symbolic_self] @@ -622,7 +622,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Op.type.442b68.5: type = fn_type @Op.5 [concrete] // CHECK:STDOUT: %Op.72717c.5: %Op.type.442b68.5 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.9e6: = custom_witness (%Int16, %Op.72717c.5), @ModWith.1, @ModWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.cde: %facet_type.a2b = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.9e6) [concrete] +// CHECK:STDOUT: %facet_value.718: %facet_type.a2b = facet_value %i16, (%custom_witness.6c4ec3.2, %custom_witness.9e6) [concrete] // CHECK:STDOUT: %.Self.frozen.9a7: %facet_type.ee8 = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %complete_type.8fc: = complete_type_witness %facet_type.ee8 [concrete] // CHECK:STDOUT: %.Self.frozen.as_type.954: type = facet_access_type %.Self.frozen.9a7 [symbolic_self] @@ -762,7 +762,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %result.patt.47f: %pattern_type.8b4 = wrapper_binding_pattern result, %result.param_patt.e81 [concrete] // CHECK:STDOUT: %y.param_patt.e0c: %pattern_type.8b4 = value_param_pattern [concrete] // CHECK:STDOUT: %y.patt.9e1: %pattern_type.8b4 = wrapper_binding_pattern y, %y.param_patt.e0c [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.b76: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.099) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.b76: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.099) [concrete] // CHECK:STDOUT: %.043: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.b76, %Destroy.facet.099 [concrete] // CHECK:STDOUT: %facet_type.44e: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32)> [concrete] // CHECK:STDOUT: %.Self.8ac: %facet_type.44e = symbolic_binding .Self [symbolic_self] @@ -929,7 +929,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %T.patt.f5c: %pattern_type.613 = symbolic_binding_pattern T, 2 [symbolic] // CHECK:STDOUT: %result.param_patt.1e1: %pattern_type.4aa = value_param_pattern [concrete] // CHECK:STDOUT: %result.patt.93b: %pattern_type.4aa = wrapper_binding_pattern result, %result.param_patt.1e1 [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c2c: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.191) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c2c: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.191) [concrete] // CHECK:STDOUT: %.c2e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.c2c, %Destroy.facet.191 [concrete] // CHECK:STDOUT: %facet_type.502: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int64)> [concrete] // CHECK:STDOUT: %.Self.074: %facet_type.502 = symbolic_binding .Self [symbolic_self] @@ -1581,11 +1581,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %.loc126_5.6: type = fn_type_with_self_type %AddWith.WithSelf.Op.type, %AddWith.facet [symbolic = %.loc126_5.6 (constants.%.a30)] // CHECK:STDOUT: %impl.elem1.loc126_5.2: @AddWith.loc124.%.loc126_5.6 (%.a30) = impl_witness_access %AddWith.lookup_impl_witness.loc126, element1 [symbolic = %impl.elem1.loc126_5.2 (constants.%impl.elem1.b05)] // CHECK:STDOUT: %specific_impl_fn.loc126_5.3: = specific_impl_function %impl.elem1.loc126_5.2, @AddWith.WithSelf.Op(%U.as_type.loc123_35.1, %AddWith.facet) [symbolic = %specific_impl_fn.loc126_5.3 (constants.%specific_impl_fn.78d)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result.loc121_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Result.loc121_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] // CHECK:STDOUT: %.loc126_5.7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc121_9.1 [symbolic = %.loc126_5.7 (constants.%.53a)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Result.loc121_9.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc126_5.2: @AddWith.loc124.%.loc126_5.7 (%.53a) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc126_5.2 (constants.%impl.elem0.0f9)] -// CHECK:STDOUT: %specific_impl_fn.loc126_5.4: = specific_impl_function %impl.elem0.loc126_5.2, @Destroy.WithSelf.Op(%Result.loc121_9.1) [symbolic = %specific_impl_fn.loc126_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc126_5.4: = specific_impl_function %impl.elem0.loc126_5.2, @Destroy.WithSelf.Op.1(%Result.loc121_9.1) [symbolic = %specific_impl_fn.loc126_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%result.param: @AddWith.loc124.%Result.as_type.loc123_53.1 (%Result.as_type), %x.param: @AddWith.loc124.%T.as_type.loc124_29.1 (%T.as_type.6fc), %y.param: @AddWith.loc124.%U.as_type.loc123_35.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: @@ -1605,7 +1605,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %bound_method.loc126_5.3: = bound_method %.loc126_5.3, %impl.elem0.loc126_5.1 // CHECK:STDOUT: %.loc126_5.4: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc121_9.1 (constants.%Result)] // CHECK:STDOUT: %.loc126_5.5: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc121_9.1 (constants.%Result)] -// CHECK:STDOUT: %specific_impl_fn.loc126_5.2: = specific_impl_function %impl.elem0.loc126_5.1, @Destroy.WithSelf.Op(constants.%Result) [symbolic = %specific_impl_fn.loc126_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc126_5.2: = specific_impl_function %impl.elem0.loc126_5.1, @Destroy.WithSelf.Op.1(constants.%Result) [symbolic = %specific_impl_fn.loc126_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: %bound_method.loc126_5.4: = bound_method %.loc126_5.3, %specific_impl_fn.loc126_5.2 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc126_5.4(%.loc126_5.3) // CHECK:STDOUT: @@ -1625,11 +1625,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %.loc137_5.6: type = fn_type_with_self_type %SubWith.WithSelf.Op.type, %SubWith.facet [symbolic = %.loc137_5.6 (constants.%.a4a)] // CHECK:STDOUT: %impl.elem1.loc137_5.2: @SubWith.loc135.%.loc137_5.6 (%.a4a) = impl_witness_access %SubWith.lookup_impl_witness.loc137, element1 [symbolic = %impl.elem1.loc137_5.2 (constants.%impl.elem1.e4f)] // CHECK:STDOUT: %specific_impl_fn.loc137_5.3: = specific_impl_function %impl.elem1.loc137_5.2, @SubWith.WithSelf.Op(%U.as_type.loc134_35.1, %SubWith.facet) [symbolic = %specific_impl_fn.loc137_5.3 (constants.%specific_impl_fn.46d)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result.loc132_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Result.loc132_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] // CHECK:STDOUT: %.loc137_5.7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc132_9.1 [symbolic = %.loc137_5.7 (constants.%.53a)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Result.loc132_9.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc137_5.2: @SubWith.loc135.%.loc137_5.7 (%.53a) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc137_5.2 (constants.%impl.elem0.0f9)] -// CHECK:STDOUT: %specific_impl_fn.loc137_5.4: = specific_impl_function %impl.elem0.loc137_5.2, @Destroy.WithSelf.Op(%Result.loc132_9.1) [symbolic = %specific_impl_fn.loc137_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc137_5.4: = specific_impl_function %impl.elem0.loc137_5.2, @Destroy.WithSelf.Op.1(%Result.loc132_9.1) [symbolic = %specific_impl_fn.loc137_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%result.param: @SubWith.loc135.%Result.as_type.loc134_53.1 (%Result.as_type), %x.param: @SubWith.loc135.%T.as_type.loc135_29.1 (%T.as_type.58f), %y.param: @SubWith.loc135.%U.as_type.loc134_35.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: @@ -1649,7 +1649,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %bound_method.loc137_5.3: = bound_method %.loc137_5.3, %impl.elem0.loc137_5.1 // CHECK:STDOUT: %.loc137_5.4: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc132_9.1 (constants.%Result)] // CHECK:STDOUT: %.loc137_5.5: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc132_9.1 (constants.%Result)] -// CHECK:STDOUT: %specific_impl_fn.loc137_5.2: = specific_impl_function %impl.elem0.loc137_5.1, @Destroy.WithSelf.Op(constants.%Result) [symbolic = %specific_impl_fn.loc137_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc137_5.2: = specific_impl_function %impl.elem0.loc137_5.1, @Destroy.WithSelf.Op.1(constants.%Result) [symbolic = %specific_impl_fn.loc137_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: %bound_method.loc137_5.4: = bound_method %.loc137_5.3, %specific_impl_fn.loc137_5.2 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc137_5.4(%.loc137_5.3) // CHECK:STDOUT: @@ -1669,11 +1669,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %.loc148_5.6: type = fn_type_with_self_type %MulWith.WithSelf.Op.type, %MulWith.facet [symbolic = %.loc148_5.6 (constants.%.a49)] // CHECK:STDOUT: %impl.elem1.loc148_5.2: @MulWith.loc146.%.loc148_5.6 (%.a49) = impl_witness_access %MulWith.lookup_impl_witness.loc148, element1 [symbolic = %impl.elem1.loc148_5.2 (constants.%impl.elem1.a7b)] // CHECK:STDOUT: %specific_impl_fn.loc148_5.3: = specific_impl_function %impl.elem1.loc148_5.2, @MulWith.WithSelf.Op(%U.as_type.loc145_35.1, %MulWith.facet) [symbolic = %specific_impl_fn.loc148_5.3 (constants.%specific_impl_fn.eab)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result.loc143_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Result.loc143_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] // CHECK:STDOUT: %.loc148_5.7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc143_9.1 [symbolic = %.loc148_5.7 (constants.%.53a)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Result.loc143_9.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc148_5.2: @MulWith.loc146.%.loc148_5.7 (%.53a) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc148_5.2 (constants.%impl.elem0.0f9)] -// CHECK:STDOUT: %specific_impl_fn.loc148_5.4: = specific_impl_function %impl.elem0.loc148_5.2, @Destroy.WithSelf.Op(%Result.loc143_9.1) [symbolic = %specific_impl_fn.loc148_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc148_5.4: = specific_impl_function %impl.elem0.loc148_5.2, @Destroy.WithSelf.Op.1(%Result.loc143_9.1) [symbolic = %specific_impl_fn.loc148_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%result.param: @MulWith.loc146.%Result.as_type.loc145_53.1 (%Result.as_type), %x.param: @MulWith.loc146.%T.as_type.loc146_29.1 (%T.as_type.83f), %y.param: @MulWith.loc146.%U.as_type.loc145_35.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: @@ -1693,7 +1693,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %bound_method.loc148_5.3: = bound_method %.loc148_5.3, %impl.elem0.loc148_5.1 // CHECK:STDOUT: %.loc148_5.4: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc143_9.1 (constants.%Result)] // CHECK:STDOUT: %.loc148_5.5: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc143_9.1 (constants.%Result)] -// CHECK:STDOUT: %specific_impl_fn.loc148_5.2: = specific_impl_function %impl.elem0.loc148_5.1, @Destroy.WithSelf.Op(constants.%Result) [symbolic = %specific_impl_fn.loc148_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc148_5.2: = specific_impl_function %impl.elem0.loc148_5.1, @Destroy.WithSelf.Op.1(constants.%Result) [symbolic = %specific_impl_fn.loc148_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: %bound_method.loc148_5.4: = bound_method %.loc148_5.3, %specific_impl_fn.loc148_5.2 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc148_5.4(%.loc148_5.3) // CHECK:STDOUT: @@ -1713,11 +1713,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %.loc159_5.6: type = fn_type_with_self_type %DivWith.WithSelf.Op.type, %DivWith.facet [symbolic = %.loc159_5.6 (constants.%.6b1)] // CHECK:STDOUT: %impl.elem1.loc159_5.2: @DivWith.loc157.%.loc159_5.6 (%.6b1) = impl_witness_access %DivWith.lookup_impl_witness.loc159, element1 [symbolic = %impl.elem1.loc159_5.2 (constants.%impl.elem1.bfe)] // CHECK:STDOUT: %specific_impl_fn.loc159_5.3: = specific_impl_function %impl.elem1.loc159_5.2, @DivWith.WithSelf.Op(%U.as_type.loc156_35.1, %DivWith.facet) [symbolic = %specific_impl_fn.loc159_5.3 (constants.%specific_impl_fn.e98)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result.loc154_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Result.loc154_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] // CHECK:STDOUT: %.loc159_5.7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc154_9.1 [symbolic = %.loc159_5.7 (constants.%.53a)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Result.loc154_9.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc159_5.2: @DivWith.loc157.%.loc159_5.7 (%.53a) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc159_5.2 (constants.%impl.elem0.0f9)] -// CHECK:STDOUT: %specific_impl_fn.loc159_5.4: = specific_impl_function %impl.elem0.loc159_5.2, @Destroy.WithSelf.Op(%Result.loc154_9.1) [symbolic = %specific_impl_fn.loc159_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc159_5.4: = specific_impl_function %impl.elem0.loc159_5.2, @Destroy.WithSelf.Op.1(%Result.loc154_9.1) [symbolic = %specific_impl_fn.loc159_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%result.param: @DivWith.loc157.%Result.as_type.loc156_53.1 (%Result.as_type), %x.param: @DivWith.loc157.%T.as_type.loc157_29.1 (%T.as_type.a74), %y.param: @DivWith.loc157.%U.as_type.loc156_35.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: @@ -1737,7 +1737,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %bound_method.loc159_5.3: = bound_method %.loc159_5.3, %impl.elem0.loc159_5.1 // CHECK:STDOUT: %.loc159_5.4: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc154_9.1 (constants.%Result)] // CHECK:STDOUT: %.loc159_5.5: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc154_9.1 (constants.%Result)] -// CHECK:STDOUT: %specific_impl_fn.loc159_5.2: = specific_impl_function %impl.elem0.loc159_5.1, @Destroy.WithSelf.Op(constants.%Result) [symbolic = %specific_impl_fn.loc159_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc159_5.2: = specific_impl_function %impl.elem0.loc159_5.1, @Destroy.WithSelf.Op.1(constants.%Result) [symbolic = %specific_impl_fn.loc159_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: %bound_method.loc159_5.4: = bound_method %.loc159_5.3, %specific_impl_fn.loc159_5.2 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc159_5.4(%.loc159_5.3) // CHECK:STDOUT: @@ -1757,11 +1757,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %.loc170_5.6: type = fn_type_with_self_type %ModWith.WithSelf.Op.type, %ModWith.facet [symbolic = %.loc170_5.6 (constants.%.195)] // CHECK:STDOUT: %impl.elem1.loc170_5.2: @ModWith.loc168.%.loc170_5.6 (%.195) = impl_witness_access %ModWith.lookup_impl_witness.loc170, element1 [symbolic = %impl.elem1.loc170_5.2 (constants.%impl.elem1.715)] // CHECK:STDOUT: %specific_impl_fn.loc170_5.3: = specific_impl_function %impl.elem1.loc170_5.2, @ModWith.WithSelf.Op(%U.as_type.loc167_35.1, %ModWith.facet) [symbolic = %specific_impl_fn.loc170_5.3 (constants.%specific_impl_fn.0b2)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result.loc165_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Result.loc165_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] // CHECK:STDOUT: %.loc170_5.7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc165_9.1 [symbolic = %.loc170_5.7 (constants.%.53a)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Result.loc165_9.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc170_5.2: @ModWith.loc168.%.loc170_5.7 (%.53a) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc170_5.2 (constants.%impl.elem0.0f9)] -// CHECK:STDOUT: %specific_impl_fn.loc170_5.4: = specific_impl_function %impl.elem0.loc170_5.2, @Destroy.WithSelf.Op(%Result.loc165_9.1) [symbolic = %specific_impl_fn.loc170_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc170_5.4: = specific_impl_function %impl.elem0.loc170_5.2, @Destroy.WithSelf.Op.1(%Result.loc165_9.1) [symbolic = %specific_impl_fn.loc170_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%result.param: @ModWith.loc168.%Result.as_type.loc167_53.1 (%Result.as_type), %x.param: @ModWith.loc168.%T.as_type.loc168_29.1 (%T.as_type.1c2), %y.param: @ModWith.loc168.%U.as_type.loc167_35.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: @@ -1781,7 +1781,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %bound_method.loc170_5.3: = bound_method %.loc170_5.3, %impl.elem0.loc170_5.1 // CHECK:STDOUT: %.loc170_5.4: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc165_9.1 (constants.%Result)] // CHECK:STDOUT: %.loc170_5.5: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc165_9.1 (constants.%Result)] -// CHECK:STDOUT: %specific_impl_fn.loc170_5.2: = specific_impl_function %impl.elem0.loc170_5.1, @Destroy.WithSelf.Op(constants.%Result) [symbolic = %specific_impl_fn.loc170_5.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc170_5.2: = specific_impl_function %impl.elem0.loc170_5.1, @Destroy.WithSelf.Op.1(constants.%Result) [symbolic = %specific_impl_fn.loc170_5.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: %bound_method.loc170_5.4: = bound_method %.loc170_5.3, %specific_impl_fn.loc170_5.2 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc170_5.4(%.loc170_5.3) // CHECK:STDOUT: @@ -1999,11 +1999,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %.loc296_3.7: type = fn_type_with_self_type %Negate.WithSelf.Op.type, %Negate.facet.loc296_3.3 [symbolic = %.loc296_3.7 (constants.%.16a)] // CHECK:STDOUT: %impl.elem1.loc296_3.2: @TestNegate.%.loc296_3.7 (%.16a) = impl_witness_access %Negate.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc296_3.2 (constants.%impl.elem1.ee9)] // CHECK:STDOUT: %specific_impl_fn.loc296_3.3: = specific_impl_function %impl.elem1.loc296_3.2, @Negate.WithSelf.Op(%Negate.facet.loc296_3.3) [symbolic = %specific_impl_fn.loc296_3.3 (constants.%specific_impl_fn.923)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result.loc292_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Result.loc292_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] // CHECK:STDOUT: %.loc296_3.8: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc292_9.1 [symbolic = %.loc296_3.8 (constants.%.53a)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Result.loc292_9.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc296_3.2: @TestNegate.%.loc296_3.8 (%.53a) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc296_3.2 (constants.%impl.elem0.0f9)] -// CHECK:STDOUT: %specific_impl_fn.loc296_3.4: = specific_impl_function %impl.elem0.loc296_3.2, @Destroy.WithSelf.Op(%Result.loc292_9.1) [symbolic = %specific_impl_fn.loc296_3.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc296_3.4: = specific_impl_function %impl.elem0.loc296_3.2, @Destroy.WithSelf.Op.1(%Result.loc292_9.1) [symbolic = %specific_impl_fn.loc296_3.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%y.param: @TestNegate.%Result.as_type.loc293_49.1 (%Result.as_type), %x.param: @TestNegate.%T.as_type.loc294_24.1 (%T.as_type.684)) { // CHECK:STDOUT: !entry: @@ -2023,7 +2023,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %bound_method.loc296_3.3: = bound_method %.loc296_3.4, %impl.elem0.loc296_3.1 // CHECK:STDOUT: %.loc296_3.5: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc292_9.1 (constants.%Result)] // CHECK:STDOUT: %.loc296_3.6: %Destroy.type = converted constants.%Result.as_type, constants.%Result [symbolic = %Result.loc292_9.1 (constants.%Result)] -// CHECK:STDOUT: %specific_impl_fn.loc296_3.2: = specific_impl_function %impl.elem0.loc296_3.1, @Destroy.WithSelf.Op(constants.%Result) [symbolic = %specific_impl_fn.loc296_3.4 (constants.%specific_impl_fn.afc)] +// CHECK:STDOUT: %specific_impl_fn.loc296_3.2: = specific_impl_function %impl.elem0.loc296_3.1, @Destroy.WithSelf.Op.1(constants.%Result) [symbolic = %specific_impl_fn.loc296_3.4 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: %bound_method.loc296_3.4: = bound_method %.loc296_3.4, %specific_impl_fn.loc296_3.2 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc296_3.4(%.loc296_3.4) // CHECK:STDOUT: @@ -2205,7 +2205,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %y.patt.loc168_33.2 => constants.%y.patt.603 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.696) { +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.1dc) { // CHECK:STDOUT: %Result.patt.loc121_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc122_4.2 => constants.%U.patt.7a2 @@ -2227,7 +2227,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %facet_type.loc123_37 => constants.%facet_type.225 // CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.34a // CHECK:STDOUT: %T.patt.loc123_4.2 => constants.%T.patt.3ec -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.696 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.1dc // CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.785 // CHECK:STDOUT: %result.param_patt.loc124_16.2 => constants.%result.param_patt.be6 // CHECK:STDOUT: %result.patt.loc124_16.2 => constants.%result.patt.a31 @@ -2258,7 +2258,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int16.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.031) { +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.a29) { // CHECK:STDOUT: %Result.patt.loc132_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc133_4.2 => constants.%U.patt.7a2 @@ -2280,7 +2280,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %facet_type.loc134_37 => constants.%facet_type.b71 // CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.f54 // CHECK:STDOUT: %T.patt.loc134_4.2 => constants.%T.patt.842 -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.031 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.a29 // CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.785 // CHECK:STDOUT: %result.param_patt.loc135_16.2 => constants.%result.param_patt.be6 // CHECK:STDOUT: %result.patt.loc135_16.2 => constants.%result.patt.a31 @@ -2311,7 +2311,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int16.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.920) { +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.ba0) { // CHECK:STDOUT: %Result.patt.loc143_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc144_4.2 => constants.%U.patt.7a2 @@ -2333,7 +2333,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %facet_type.loc145_37 => constants.%facet_type.662 // CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.90f // CHECK:STDOUT: %T.patt.loc145_4.2 => constants.%T.patt.8ad -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.920 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.ba0 // CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.785 // CHECK:STDOUT: %result.param_patt.loc146_16.2 => constants.%result.param_patt.be6 // CHECK:STDOUT: %result.patt.loc146_16.2 => constants.%result.patt.a31 @@ -2364,7 +2364,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int16.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.ce6) { +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.de3) { // CHECK:STDOUT: %Result.patt.loc154_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc155_4.2 => constants.%U.patt.7a2 @@ -2386,7 +2386,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %facet_type.loc156_37 => constants.%facet_type.bd6 // CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.692 // CHECK:STDOUT: %T.patt.loc156_4.2 => constants.%T.patt.00c -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.ce6 +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.de3 // CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.785 // CHECK:STDOUT: %result.param_patt.loc157_16.2 => constants.%result.param_patt.be6 // CHECK:STDOUT: %result.patt.loc157_16.2 => constants.%result.patt.a31 @@ -2417,7 +2417,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int16.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.cde) { +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.718) { // CHECK:STDOUT: %Result.patt.loc165_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc166_4.2 => constants.%U.patt.7a2 @@ -2439,7 +2439,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %facet_type.loc167_37 => constants.%facet_type.a2b // CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.61d // CHECK:STDOUT: %T.patt.loc167_4.2 => constants.%T.patt.a00 -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.cde +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.718 // CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.785 // CHECK:STDOUT: %result.param_patt.loc168_16.2 => constants.%result.param_patt.be6 // CHECK:STDOUT: %result.patt.loc168_16.2 => constants.%result.patt.a31 @@ -2470,11 +2470,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int16.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.0c7) { +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.2cc, constants.%Destroy.facet.9a3, constants.%facet_value.0c7) { // CHECK:STDOUT: %Result.patt.loc121_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc122_4.2 => constants.%U.patt.7a2 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.e5c +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.9a3 // CHECK:STDOUT: %U.as_type.loc123_35.1 => constants.%i16 // CHECK:STDOUT: %AddWith.type.loc123_35.1 => constants.%AddWith.type.a36 // CHECK:STDOUT: %facet_type.loc123_19 => constants.%facet_type.1cc @@ -2523,11 +2523,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int16.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.33e) { +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.2cc, constants.%Destroy.facet.9a3, constants.%facet_value.33e) { // CHECK:STDOUT: %Result.patt.loc132_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc133_4.2 => constants.%U.patt.7a2 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.e5c +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.9a3 // CHECK:STDOUT: %U.as_type.loc134_35.1 => constants.%i16 // CHECK:STDOUT: %SubWith.type.loc134_35.1 => constants.%SubWith.type.08b // CHECK:STDOUT: %facet_type.loc134_19 => constants.%facet_type.cb2 @@ -2576,11 +2576,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int16.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.ba4) { +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.2cc, constants.%Destroy.facet.9a3, constants.%facet_value.ba4) { // CHECK:STDOUT: %Result.patt.loc143_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc144_4.2 => constants.%U.patt.7a2 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.e5c +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.9a3 // CHECK:STDOUT: %U.as_type.loc145_35.1 => constants.%i16 // CHECK:STDOUT: %MulWith.type.loc145_35.1 => constants.%MulWith.type.55d // CHECK:STDOUT: %facet_type.loc145_19 => constants.%facet_type.67c @@ -2629,11 +2629,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int16.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.521) { +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.2cc, constants.%Destroy.facet.9a3, constants.%facet_value.521) { // CHECK:STDOUT: %Result.patt.loc154_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc155_4.2 => constants.%U.patt.7a2 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.e5c +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.9a3 // CHECK:STDOUT: %U.as_type.loc156_35.1 => constants.%i16 // CHECK:STDOUT: %DivWith.type.loc156_35.1 => constants.%DivWith.type.ab0 // CHECK:STDOUT: %facet_type.loc156_19 => constants.%facet_type.86c8 @@ -2682,11 +2682,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int16.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.ce1) { +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.2cc, constants.%Destroy.facet.9a3, constants.%facet_value.ce1) { // CHECK:STDOUT: %Result.patt.loc165_9.2 => constants.%Result.patt // CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.patt.loc166_4.2 => constants.%U.patt.7a2 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.e5c +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.9a3 // CHECK:STDOUT: %U.as_type.loc167_35.1 => constants.%i16 // CHECK:STDOUT: %ModWith.type.loc167_35.1 => constants.%ModWith.type.0b2 // CHECK:STDOUT: %facet_type.loc167_19 => constants.%facet_type.afdb diff --git a/toolchain/check/testdata/interop/cpp/operators/operators.carbon b/toolchain/check/testdata/interop/cpp/operators/operators.carbon index 0167573765c7..adca15723263 100644 --- a/toolchain/check/testdata/interop/cpp/operators/operators.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/operators.carbon @@ -1277,8 +1277,8 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf3: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.098: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_42.ac4: %i32 = int_value 42 [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc45 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: %BinaryC.cpp_destructor.type: type = fn_type @BinaryC.cpp_destructor [concrete] // CHECK:STDOUT: %BinaryC.cpp_destructor: %BinaryC.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %BinaryC.Op.type: type = fn_type @BinaryC.Op [concrete] @@ -1906,18 +1906,18 @@ fn F() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %index.patt: %pattern_type.6b6 = value_binding_pattern index [concrete = constants.%index.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc45: = bound_method %.loc45_44.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc45: init %empty_tuple.type = call %Destroy.Op.bound.loc45(%.loc45_44.3) -// CHECK:STDOUT: %Destroy.Op.bound.loc44: = bound_method %.loc44_47.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc44: init %empty_tuple.type = call %Destroy.Op.bound.loc44(%.loc44_47.3) -// CHECK:STDOUT: %Destroy.Op.bound.loc43: = bound_method %.loc43_35.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc43: init %empty_tuple.type = call %Destroy.Op.bound.loc43(%.loc43_35.3) -// CHECK:STDOUT: %Destroy.Op.bound.loc42: = bound_method %.loc42_38.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc42: init %empty_tuple.type = call %Destroy.Op.bound.loc42(%.loc42_38.3) -// CHECK:STDOUT: %Destroy.Op.bound.loc41: = bound_method %.loc41_35.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc41: init %empty_tuple.type = call %Destroy.Op.bound.loc41(%.loc41_35.3) -// CHECK:STDOUT: %Destroy.Op.bound.loc40: = bound_method %.loc40_31.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc40: init %empty_tuple.type = call %Destroy.Op.bound.loc40(%.loc40_31.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc45: = bound_method %.loc45_44.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc45: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc45(%.loc45_44.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc44: = bound_method %.loc44_47.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc44: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc44(%.loc44_47.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc43: = bound_method %.loc43_35.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc43: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc43(%.loc43_35.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc42: = bound_method %.loc42_38.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc42: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc42(%.loc42_38.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc41: = bound_method %.loc41_35.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc41: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc41(%.loc41_35.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc40: = bound_method %.loc40_31.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc40: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc40(%.loc40_31.3) // CHECK:STDOUT: // CHECK:STDOUT: %BinaryC.Op.bound.loc23: = bound_method %.loc23_44.3, constants.%BinaryC.Op // CHECK:STDOUT: %Op.ref.loc23: %BinaryC.cpp_destructor.type = name_ref Op, imports.%BinaryC.cpp_destructor.decl [concrete = constants.%BinaryC.cpp_destructor] @@ -1970,7 +1970,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc45(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- multiple_calls.carbon // CHECK:STDOUT: @@ -2165,8 +2165,8 @@ fn F() { // CHECK:STDOUT: %less_than_or_equal.patt: %pattern_type.831 = value_binding_pattern less_than_or_equal [concrete] // CHECK:STDOUT: %operator_LessEqual__carbon_thunk.type: type = fn_type @operator_LessEqual__carbon_thunk [concrete] // CHECK:STDOUT: %operator_LessEqual__carbon_thunk: %operator_LessEqual__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc36 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] // CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete] @@ -2292,10 +2292,10 @@ fn F() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %less_than_or_equal.patt: %pattern_type.831 = value_binding_pattern less_than_or_equal [concrete = constants.%less_than_or_equal.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc36: = bound_method %.loc36_44.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc36: init %empty_tuple.type = call %Destroy.Op.bound.loc36(%.loc36_44.3) -// CHECK:STDOUT: %Destroy.Op.bound.loc19: = bound_method %.loc19_38.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc19: init %empty_tuple.type = call %Destroy.Op.bound.loc19(%.loc19_38.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc36: = bound_method %.loc36_44.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc36: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc36(%.loc36_44.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc19: = bound_method %.loc19_38.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc19: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc19(%.loc19_38.3) // CHECK:STDOUT: // CHECK:STDOUT: %C.Op.bound.loc16: = bound_method %c2.var, constants.%C.Op // CHECK:STDOUT: %Op.ref.loc16: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor] @@ -2308,7 +2308,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc36(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_rewrite_equal.carbon // CHECK:STDOUT: @@ -2331,8 +2331,8 @@ fn F() { // CHECK:STDOUT: %operator_EqualEqual__carbon_thunk.type: type = fn_type @operator_EqualEqual__carbon_thunk [concrete] // CHECK:STDOUT: %operator_EqualEqual__carbon_thunk: %operator_EqualEqual__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %not_equal.patt: %pattern_type.831 = value_binding_pattern not_equal [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc16 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: %EqualC.cpp_destructor.type: type = fn_type @EqualC.cpp_destructor [concrete] // CHECK:STDOUT: %EqualC.cpp_destructor: %EqualC.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %EqualC.Op.type: type = fn_type @EqualC.Op [concrete] @@ -2427,8 +2427,8 @@ fn F() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %not_equal.patt: %pattern_type.831 = value_binding_pattern not_equal [concrete = constants.%not_equal.patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc16_31.3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc16_31.3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc16_31.3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc16_31.3) // CHECK:STDOUT: // CHECK:STDOUT: %EqualC.Op.bound.loc13: = bound_method %c2.var, constants.%EqualC.Op // CHECK:STDOUT: %Op.ref.loc13: %EqualC.cpp_destructor.type = name_ref Op, imports.%EqualC.cpp_destructor.decl [concrete = constants.%EqualC.cpp_destructor] @@ -2441,7 +2441,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- import_single_namespace.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.darwin.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.darwin.carbon index 0e8a0db68dce..cec2dab9d6f4 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.darwin.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.darwin.carbon @@ -693,8 +693,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %bound_method: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -778,19 +778,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -865,8 +865,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %bound_method: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -950,19 +950,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1069,8 +1069,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %bound_method.3e4: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc24_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc24_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %LongLongResult.cpp_destructor.type: type = fn_type @LongLongResult.cpp_destructor [concrete] // CHECK:STDOUT: %LongLongResult.cpp_destructor: %LongLongResult.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %LongResult.cpp_destructor.type: type = fn_type @LongResult.cpp_destructor [concrete] @@ -1242,8 +1242,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: %LongLongResult.cpp_destructor.bound.loc22: = bound_method %.loc22_81.3, constants.%LongLongResult.cpp_destructor // CHECK:STDOUT: %LongLongResult.cpp_destructor.call.loc22: init %empty_tuple.type = call %LongLongResult.cpp_destructor.bound.loc22(%.loc22_81.3) // CHECK:STDOUT: %LongResult.cpp_destructor.bound: = bound_method %.loc19_73.3, constants.%LongResult.cpp_destructor @@ -1253,14 +1253,14 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1295,8 +1295,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.6f73: type = fn_type_with_self_type %Copy.WithSelf.Op.type.881, %Copy.facet [concrete] // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op.type: type = fn_type @Cpp.long.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op: %Cpp.long.as.Copy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1344,21 +1344,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %b.patt: %pattern_type.ada = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.ada = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2646,8 +2646,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.934: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.efa, %RightShiftAssignWith.facet.af7 [concrete] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.368c78.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.3dae5a.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.0ac) [concrete] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.368c78.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.3dae5a.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.0ac) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op.type: type = fn_type @Cpp.long.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op: %Cpp.long.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -2899,21 +2899,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0ac) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.368c78.2] // CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %a.ref.loc21, %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_5.3(%a.ref.loc21, %.loc21_9) -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3368,8 +3368,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.330: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.77c, %AddAssignWith.facet.775 [concrete] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.a9f447.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.17a680.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.a9f447.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.17a680.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3423,19 +3423,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc9_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.33f] // CHECK:STDOUT: %.loc9_8.2: %Cpp.long = converted %int_1.loc9, %.loc9_8.1 [concrete = constants.%int_1.33f] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_5.3(%a.ref, %.loc9_8.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3502,8 +3502,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.bf5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.d9b, %ImplicitAs.facet.8fd [concrete] // CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert.type: type = fn_type @Cpp.long.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert: %Cpp.long.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3570,14 +3570,14 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc10_8.1: %i64 = value_of_initializer %Cpp.long.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc10_8.2: %i64 = converted %b.ref, %.loc10_8.1 // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_5.3(%a.ref, %.loc10_8.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3617,8 +3617,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.964: type = fn_type_with_self_type %Dec.WithSelf.Op.type.9c9, %Dec.facet [concrete] // CHECK:STDOUT: %Cpp.long.as.Dec.impl.Op.type: type = fn_type @Cpp.long.as.Dec.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long.as.Dec.impl.Op: %Cpp.long.as.Dec.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3660,19 +3660,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %impl.elem0.loc10: %.964 = impl_witness_access constants.%Dec.impl_witness, element0 [concrete = constants.%Cpp.long.as.Dec.impl.Op] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.ref.loc10, %impl.elem0.loc10 // CHECK:STDOUT: %Cpp.long.as.Dec.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%a.ref.loc10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3770,8 +3770,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %bound_method.3e4: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc24_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc24_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %ULongLongResult.cpp_destructor.type: type = fn_type @ULongLongResult.cpp_destructor [concrete] // CHECK:STDOUT: %ULongLongResult.cpp_destructor: %ULongLongResult.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %ULongResult.cpp_destructor.type: type = fn_type @ULongResult.cpp_destructor [concrete] @@ -3946,8 +3946,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: %ULongLongResult.cpp_destructor.bound.loc22: = bound_method %.loc22_83.3, constants.%ULongLongResult.cpp_destructor // CHECK:STDOUT: %ULongLongResult.cpp_destructor.call.loc22: init %empty_tuple.type = call %ULongLongResult.cpp_destructor.bound.loc22(%.loc22_83.3) // CHECK:STDOUT: %ULongResult.cpp_destructor.bound: = bound_method %.loc19_93.3, constants.%ULongResult.cpp_destructor @@ -3957,14 +3957,14 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3999,8 +3999,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.63b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.ca5, %Copy.facet [concrete] // CHECK:STDOUT: %Cpp.unsigned_long.as.Copy.impl.Op.type: type = fn_type @Cpp.unsigned_long.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Cpp.unsigned_long.as.Copy.impl.Op: %Cpp.unsigned_long.as.Copy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -4048,21 +4048,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %b.patt: %pattern_type.172 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.172 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %u64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %u64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %u64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %u64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.unsigned_long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.unsigned_long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon index 0f5d4e5d8c2d..9ee3490286a5 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon @@ -759,8 +759,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %bound_method.3e4: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -844,19 +844,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -936,8 +936,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %bound_method.3e4: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1021,19 +1021,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1136,8 +1136,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc26_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc26_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %IntResult.cpp_destructor.type: type = fn_type @IntResult.cpp_destructor [concrete] // CHECK:STDOUT: %IntResult.cpp_destructor: %IntResult.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %LongResult.cpp_destructor.type: type = fn_type @LongResult.cpp_destructor [concrete] @@ -1333,8 +1333,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: %IntResult.cpp_destructor.bound: = bound_method %.loc22_72.3, constants.%IntResult.cpp_destructor // CHECK:STDOUT: %IntResult.cpp_destructor.call: init %empty_tuple.type = call %IntResult.cpp_destructor.bound(%.loc22_72.3) // CHECK:STDOUT: %LongResult.cpp_destructor.bound.loc19: = bound_method %.loc19_83.3, constants.%LongResult.cpp_destructor @@ -1344,14 +1344,14 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1386,8 +1386,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.f58: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7c0, %Copy.facet [concrete] // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op.type: type = fn_type @Cpp.long.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op: %Cpp.long.as.Copy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1435,21 +1435,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %b.patt: %pattern_type.25e = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.25e = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2915,8 +2915,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.401: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.459, %RightShiftAssignWith.facet.d0b [concrete] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.3dff2c.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.12df33.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.4d5) [concrete] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.3dff2c.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.12df33.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.4d5) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op.type: type = fn_type @Cpp.long.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op: %Cpp.long.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -3168,21 +3168,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.4d5) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.3dff2c.2] // CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %a.ref.loc21, %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_5.3(%a.ref.loc21, %.loc21_9) -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3365,8 +3365,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.f59: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.155, %RightShiftAssignWith.facet.940 [concrete] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.03ccc7.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.30352f.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.2ac) [concrete] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.03ccc7.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.30352f.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.2ac) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3639,19 +3639,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc20_9.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc20 // CHECK:STDOUT: %.loc20_9.2: %Cpp.long = converted %b.ref.loc20, %.loc20_9.1 // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_5.3(%a.ref.loc20, %.loc20_9.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3693,8 +3693,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.fd5: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.b43, %AddAssignWith.facet.e2c [concrete] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.c6f135.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.99fe7e.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.c6f135.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.99fe7e.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3748,19 +3748,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc9_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %.loc9_8.2: %Cpp.long = converted %int_1.loc9, %.loc9_8.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_5.3(%a.ref, %.loc9_8.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3824,8 +3824,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.08c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f2d, %ImplicitAs.facet.2ac [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.type: type = fn_type @i32.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert: %i32.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3896,19 +3896,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc10_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc10_8.2: %Cpp.long = converted %b.ref, %.loc10_8.1 // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_5.3(%a.ref, %.loc10_8.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3948,8 +3948,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.2e4: type = fn_type_with_self_type %Dec.WithSelf.Op.type.e5a, %Dec.facet [concrete] // CHECK:STDOUT: %Cpp.long.as.Dec.impl.Op.type: type = fn_type @Cpp.long.as.Dec.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long.as.Dec.impl.Op: %Cpp.long.as.Dec.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3991,19 +3991,19 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %impl.elem0.loc10: %.2e4 = impl_witness_access constants.%Dec.impl_witness, element0 [concrete = constants.%Cpp.long.as.Dec.impl.Op] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.ref.loc10, %impl.elem0.loc10 // CHECK:STDOUT: %Cpp.long.as.Dec.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%a.ref.loc10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %Cpp.long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %Cpp.long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -4109,8 +4109,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc24_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc24_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %UIntResult.cpp_destructor.type: type = fn_type @UIntResult.cpp_destructor [concrete] // CHECK:STDOUT: %UIntResult.cpp_destructor: %UIntResult.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %ULongResult.cpp_destructor.type: type = fn_type @ULongResult.cpp_destructor [concrete] @@ -4299,8 +4299,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: %UIntResult.cpp_destructor.bound: = bound_method %.loc22_74.3, constants.%UIntResult.cpp_destructor // CHECK:STDOUT: %UIntResult.cpp_destructor.call: init %empty_tuple.type = call %UIntResult.cpp_destructor.bound(%.loc22_74.3) // CHECK:STDOUT: %ULongResult.cpp_destructor.bound.loc19: = bound_method %.loc19_87.3, constants.%ULongResult.cpp_destructor @@ -4310,14 +4310,14 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -4352,8 +4352,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.78b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.5ce, %Copy.facet [concrete] // CHECK:STDOUT: %Cpp.unsigned_long.as.Copy.impl.Op.type: type = fn_type @Cpp.unsigned_long.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Cpp.unsigned_long.as.Copy.impl.Op: %Cpp.unsigned_long.as.Copy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -4401,21 +4401,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %b.patt: %pattern_type.1a0 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.1a0 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %u32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %u32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %u32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %u32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.unsigned_long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.unsigned_long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon index 7a36e9abbb67..8180c2be59a3 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon @@ -707,8 +707,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %bound_method.3e4: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -792,19 +792,19 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -884,8 +884,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %bound_method.3e4: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc11_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -969,19 +969,19 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1074,8 +1074,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc24_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc24_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %LongResult.cpp_destructor.type: type = fn_type @LongResult.cpp_destructor [concrete] // CHECK:STDOUT: %LongResult.cpp_destructor: %LongResult.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %LongLongResult.cpp_destructor.type: type = fn_type @LongLongResult.cpp_destructor [concrete] @@ -1258,8 +1258,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: %LongResult.cpp_destructor.bound: = bound_method %.loc22_77.3, constants.%LongResult.cpp_destructor // CHECK:STDOUT: %LongResult.cpp_destructor.call: init %empty_tuple.type = call %LongResult.cpp_destructor.bound(%.loc22_77.3) // CHECK:STDOUT: %LongLongResult.cpp_destructor.bound.loc19: = bound_method %.loc19_101.3, constants.%LongLongResult.cpp_destructor @@ -1269,14 +1269,14 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1311,8 +1311,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.252: type = fn_type_with_self_type %Copy.WithSelf.Op.type.1b6, %Copy.facet [concrete] // CHECK:STDOUT: %Cpp.long_long.as.Copy.impl.Op.type: type = fn_type @Cpp.long_long.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long_long.as.Copy.impl.Op: %Cpp.long_long.as.Copy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1360,21 +1360,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %b.patt: %pattern_type.d58 = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.d58 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.long_long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.long_long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2624,8 +2624,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.b01: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.3ee, %RightShiftAssignWith.facet.926 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.ddd122.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5eb4a1.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.bc8) [concrete] // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.ddd122.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5eb4a1.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.bc8) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %Cpp.long_long.as.Copy.impl.Op.type: type = fn_type @Cpp.long_long.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long_long.as.Copy.impl.Op: %Cpp.long_long.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -2877,21 +2877,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.bc8) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.ddd122.2] // CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %a.ref.loc21, %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_5.3(%a.ref.loc21, %.loc21_9) -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.long_long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.long_long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3074,8 +3074,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.b40: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.6c4, %RightShiftAssignWith.facet.004 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.9385c3.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.110511.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.2d9) [concrete] // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.9385c3.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.110511.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.2d9) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3348,19 +3348,19 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc20_9.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc20 // CHECK:STDOUT: %.loc20_9.2: %Cpp.long_long = converted %b.ref.loc20, %.loc20_9.1 // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_5.3(%a.ref.loc20, %.loc20_9.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.long_long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.long_long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3402,8 +3402,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.9a6: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.498, %AddAssignWith.facet.ff3 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.cb43dd.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.0ea592.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.cb43dd.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.0ea592.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3457,19 +3457,19 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc9_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %.loc9_8.2: %Cpp.long_long = converted %int_1.loc9, %.loc9_8.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_5.3(%a.ref, %.loc9_8.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %Cpp.long_long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %Cpp.long_long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3533,8 +3533,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.c2b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.561, %ImplicitAs.facet.2d9 [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.type: type = fn_type @i64.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert: %i64.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3605,19 +3605,19 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc10_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc10_8.2: %Cpp.long_long = converted %b.ref, %.loc10_8.1 // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_5.3(%a.ref, %.loc10_8.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %Cpp.long_long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %Cpp.long_long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3657,8 +3657,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.89c: type = fn_type_with_self_type %Dec.WithSelf.Op.type.22e, %Dec.facet [concrete] // CHECK:STDOUT: %Cpp.long_long.as.Dec.impl.Op.type: type = fn_type @Cpp.long_long.as.Dec.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long_long.as.Dec.impl.Op: %Cpp.long_long.as.Dec.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3700,19 +3700,19 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %impl.elem0.loc10: %.89c = impl_witness_access constants.%Dec.impl_witness, element0 [concrete = constants.%Cpp.long_long.as.Dec.impl.Op] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.ref.loc10, %impl.elem0.loc10 // CHECK:STDOUT: %Cpp.long_long.as.Dec.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%a.ref.loc10) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %Cpp.long_long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.3(%self.param: ref %Cpp.long_long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3819,8 +3819,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%float.943) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc24_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc24_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %ULongResult.cpp_destructor.type: type = fn_type @ULongResult.cpp_destructor [concrete] // CHECK:STDOUT: %ULongResult.cpp_destructor: %ULongResult.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %ULongLongResult.cpp_destructor.type: type = fn_type @ULongLongResult.cpp_destructor [concrete] @@ -4009,8 +4009,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete = constants.%a.patt] // CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete = constants.%a.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: %ULongResult.cpp_destructor.bound: = bound_method %.loc22_79.3, constants.%ULongResult.cpp_destructor // CHECK:STDOUT: %ULongResult.cpp_destructor.call: init %empty_tuple.type = call %ULongResult.cpp_destructor.bound(%.loc22_79.3) // CHECK:STDOUT: %ULongLongResult.cpp_destructor.bound.loc19: = bound_method %.loc19_105.3, constants.%ULongLongResult.cpp_destructor @@ -4020,14 +4020,14 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.1(%self.param: ref %f32.9b3) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %f32.c73) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_3.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -4062,8 +4062,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.e48: type = fn_type_with_self_type %Copy.WithSelf.Op.type.761, %Copy.facet [concrete] // CHECK:STDOUT: %Cpp.unsigned_long_long.as.Copy.impl.Op.type: type = fn_type @Cpp.unsigned_long_long.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Cpp.unsigned_long_long.as.Copy.impl.Op: %Cpp.unsigned_long_long.as.Copy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc9_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -4111,21 +4111,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %b.patt: %pattern_type.4cd = ref_binding_pattern b [concrete = constants.%b.patt] // CHECK:STDOUT: %b.var_patt: %pattern_type.4cd = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %u64.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %u64.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %u64) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %u64) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %Cpp.unsigned_long_long) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.3(%self.param: ref %Cpp.unsigned_long_long) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/range_for.carbon b/toolchain/check/testdata/interop/cpp/range_for.carbon index 00a34b73f83d..bb517381694d 100644 --- a/toolchain/check/testdata/interop/cpp/range_for.carbon +++ b/toolchain/check/testdata/interop/cpp/range_for.carbon @@ -816,6 +816,10 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Int.67af24.1: type = class_type @Int, @Int(%N.fe9) [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.1: = custom_witness (%Destroy.WithSelf.Op.403171.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.6de: %Destroy.type = facet_value %i32, (%custom_witness.6c4ec3.1) [concrete] // CHECK:STDOUT: %.Self.500: %Iterate.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] // CHECK:STDOUT: %Int.67af24.2: type = class_type @Int, @Int(%To) [symbolic] @@ -843,55 +847,51 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Destroy.lookup_impl_witness.35816c.2: = lookup_impl_witness %impl.elem0.493765.2, @Destroy [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.167: = lookup_impl_witness %impl.elem0.493765.2, @Copy [symbolic] // CHECK:STDOUT: %facet_value.f93: %facet_type.f48 = facet_value %impl.elem0.493765.2, (%Destroy.lookup_impl_witness.35816c.2, %Copy.lookup_impl_witness.167) [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc30_53.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.3: = custom_witness (%Destroy.Op.1a2547.3), @Destroy [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.ac8: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N.fe9) [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.5e0: %Int.as.Copy.impl.Op.type.ac8 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.b51: = impl_witness imports.%Copy.impl_witness_table.8d2, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %facet_value.53d: %facet_type.f48 = facet_value %i32, (%custom_witness.df9cc1.3, %Copy.impl_witness.b51) [concrete] +// CHECK:STDOUT: %facet_value.e3e: %facet_type.f48 = facet_value %i32, (%custom_witness.6c4ec3.1, %Copy.impl_witness.b51) [concrete] // CHECK:STDOUT: %Iterate.lookup_impl_witness.1d8: = lookup_impl_witness %.Self.500, @Iterate [symbolic_self] // CHECK:STDOUT: %impl.elem0.294: %facet_type.f48 = impl_witness_access %Iterate.lookup_impl_witness.1d8, element0 [symbolic_self] -// CHECK:STDOUT: %Iterate_where.type.01c: type = facet_type <@Iterate where %impl.elem0.294 = %facet_value.53d> [concrete] -// CHECK:STDOUT: %pattern_type.024: type = pattern_type %Iterate_where.type.01c [concrete] -// CHECK:STDOUT: %R.patt: %pattern_type.024 = symbolic_binding_pattern R, 0 [symbolic] -// CHECK:STDOUT: %R: %Iterate_where.type.01c = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %Iterate_where.type.bdc: type = facet_type <@Iterate where %impl.elem0.294 = %facet_value.e3e> [concrete] +// CHECK:STDOUT: %pattern_type.d05: type = pattern_type %Iterate_where.type.bdc [concrete] +// CHECK:STDOUT: %R.patt: %pattern_type.d05 = symbolic_binding_pattern R, 0 [symbolic] +// CHECK:STDOUT: %R: %Iterate_where.type.bdc = symbolic_binding R, 0 [symbolic] // CHECK:STDOUT: %R.as_type: type = facet_access_type %R [symbolic] -// CHECK:STDOUT: %pattern_type.073: type = pattern_type %R.as_type [symbolic] -// CHECK:STDOUT: %r.param_patt.d39: %pattern_type.073 = value_param_pattern [symbolic] -// CHECK:STDOUT: %r.patt.5af: %pattern_type.073 = wrapper_binding_pattern r, %r.param_patt.d39 [symbolic] +// CHECK:STDOUT: %pattern_type.007: type = pattern_type %R.as_type [symbolic] +// CHECK:STDOUT: %r.param_patt.737: %pattern_type.007 = value_param_pattern [symbolic] +// CHECK:STDOUT: %r.patt.06b: %pattern_type.007 = wrapper_binding_pattern r, %r.param_patt.737 [symbolic] // CHECK:STDOUT: %facet_type.037: type = facet_type <@IntFitsIn, @IntFitsIn(%Int.67af24.2) & @AnyInt> [symbolic] // CHECK:STDOUT: %From.6a4: %facet_type.037 = symbolic_binding From, 1 [symbolic] // CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.type.7fa: type = fn_type @From.as_type.as.ImplicitAs.impl.Convert, @From.as_type.as.ImplicitAs.impl(%To, %From.6a4) [symbolic] // CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.643: %From.as_type.as.ImplicitAs.impl.Convert.type.7fa = struct_value () [symbolic] // CHECK:STDOUT: %i.patt: %pattern_type.6b6 = value_binding_pattern i [concrete] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.403: = lookup_impl_witness %R, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet.a7e: %Iterate.type = facet_value %R.as_type, (%Iterate.lookup_impl_witness.403) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.d86: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.a7e) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.7ad: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.a7e) [symbolic] -// CHECK:STDOUT: %.7f7: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.d86, %Iterate.facet.a7e [symbolic] -// CHECK:STDOUT: %impl.elem2.680: %.7f7 = impl_witness_access %Iterate.lookup_impl_witness.403, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.595: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.403, element1 [symbolic] -// CHECK:STDOUT: %as_type.038: type = facet_access_type %impl.elem1.595 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.740: = specific_impl_function %impl.elem2.680, @Iterate.WithSelf.NewCursor(%Iterate.facet.a7e) [symbolic] -// CHECK:STDOUT: %ptr.d7f: type = ptr_type %as_type.038 [symbolic] -// CHECK:STDOUT: %.339: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.7ad, %Iterate.facet.a7e [symbolic] -// CHECK:STDOUT: %impl.elem3.ffb: %.339 = impl_witness_access %Iterate.lookup_impl_witness.403, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.bfa: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.53d) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.c8c: = impl_witness imports.%OptionalStorage.impl_witness_table.460, @T.as_type.as.OptionalStorage.impl(%facet_value.53d) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.097: %OptionalStorage.type = facet_value %i32, (%OptionalStorage.impl_witness.c8c) [concrete] -// CHECK:STDOUT: %Optional.755: type = class_type @Optional, @Optional(%OptionalStorage.facet.097) [concrete] -// CHECK:STDOUT: %specific_impl_fn.c09: = specific_impl_function %impl.elem3.ffb, @Iterate.WithSelf.Next(%Iterate.facet.a7e) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.af3: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.097) [concrete] -// CHECK:STDOUT: %Optional.HasValue.4f6: %Optional.HasValue.type.af3 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.336: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.097) [concrete] -// CHECK:STDOUT: %Optional.Get.0a8: %Optional.Get.type.336 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.d07318.2: %Destroy.type = facet_value %i32, (%custom_witness.df9cc1.3) [concrete] -// CHECK:STDOUT: %MaybeUnformed.023: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.d07318.2) [concrete] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.332: = lookup_impl_witness %R, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet.71c: %Iterate.type = facet_value %R.as_type, (%Iterate.lookup_impl_witness.332) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.b85: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.71c) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.7c1: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.71c) [symbolic] +// CHECK:STDOUT: %.c2f7: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.b85, %Iterate.facet.71c [symbolic] +// CHECK:STDOUT: %impl.elem2.176: %.c2f7 = impl_witness_access %Iterate.lookup_impl_witness.332, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.862: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.332, element1 [symbolic] +// CHECK:STDOUT: %as_type.3aa: type = facet_access_type %impl.elem1.862 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.c8e: = specific_impl_function %impl.elem2.176, @Iterate.WithSelf.NewCursor(%Iterate.facet.71c) [symbolic] +// CHECK:STDOUT: %ptr.e4d: type = ptr_type %as_type.3aa [symbolic] +// CHECK:STDOUT: %.5c4: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.7c1, %Iterate.facet.71c [symbolic] +// CHECK:STDOUT: %impl.elem3.4ed: %.5c4 = impl_witness_access %Iterate.lookup_impl_witness.332, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.99e: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.e3e) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.da9: = impl_witness imports.%OptionalStorage.impl_witness_table.460, @T.as_type.as.OptionalStorage.impl(%facet_value.e3e) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.375: %OptionalStorage.type = facet_value %i32, (%OptionalStorage.impl_witness.da9) [concrete] +// CHECK:STDOUT: %Optional.6f7: type = class_type @Optional, @Optional(%OptionalStorage.facet.375) [concrete] +// CHECK:STDOUT: %specific_impl_fn.902: = specific_impl_function %impl.elem3.4ed, @Iterate.WithSelf.Next(%Iterate.facet.71c) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.818: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.375) [concrete] +// CHECK:STDOUT: %Optional.HasValue.655: %Optional.HasValue.type.818 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.054: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.375) [concrete] +// CHECK:STDOUT: %Optional.Get.a58: %Optional.Get.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %MaybeUnformed.c1d: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.6de) [concrete] // CHECK:STDOUT: %.1d6a7: type = maybe_unformed_type %i32 [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.ad0: type = struct_type {.value: %MaybeUnformed.023, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn.b8c: = specific_function %Optional.HasValue.4f6, @Optional.HasValue(%OptionalStorage.facet.097) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn.fc5: = specific_function %Optional.Get.0a8, @Optional.Get(%OptionalStorage.facet.097) [concrete] +// CHECK:STDOUT: %struct_type.value.has_value.271: type = struct_type {.value: %MaybeUnformed.c1d, .has_value: bool} [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn.551: = specific_function %Optional.HasValue.655, @Optional.HasValue(%OptionalStorage.facet.375) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn.326: = specific_function %Optional.Get.a58, @Optional.Get(%OptionalStorage.facet.375) [concrete] // CHECK:STDOUT: %AddAssignWith.type.941: type = facet_type <@AddAssignWith, @AddAssignWith(%i32)> [concrete] // CHECK:STDOUT: %ImplicitAs.type.f7de31.2: type = facet_type <@ImplicitAs, @ImplicitAs(%Int.67af24.1)> [symbolic] // CHECK:STDOUT: %U.4e6: %ImplicitAs.type.f7de31.2 = symbolic_binding U, 1 [symbolic] @@ -917,13 +917,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.004: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.640, %AddAssignWith.facet.e5e [concrete] // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.specific_fn.d76216.1: = specific_function %Int.as.AddAssignWith.impl.Op.d34738.2, @Int.as.AddAssignWith.impl.Op.1(%int_32, %ImplicitAs.facet.e88) [concrete] // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.specific_fn.d76216.2: = specific_function %Int.as.AddAssignWith.impl.Op.d34738.1, @Int.as.AddAssignWith.impl.Op.2(%int_32, %ImplicitAs.facet.e88) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.9: type = fn_type @Destroy.Op.loc34_19.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.9: %Destroy.Op.type.1d8f74.9 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3c4: = lookup_impl_witness %impl.elem1.595, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.76f: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.595) [symbolic] -// CHECK:STDOUT: %.2f2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.76f, %impl.elem1.595 [symbolic] -// CHECK:STDOUT: %impl.elem0.528: %.2f2 = impl_witness_access %Destroy.lookup_impl_witness.3c4, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.dfd: = specific_impl_function %impl.elem0.528, @Destroy.WithSelf.Op(%impl.elem1.595) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.8: type = fn_type @Destroy.WithSelf.Op.loc34_19.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.8: %Destroy.WithSelf.Op.type.ef016f.8 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.51e: = lookup_impl_witness %impl.elem1.862, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ec9: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1.862) [symbolic] +// CHECK:STDOUT: %.44e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.ec9, %impl.elem1.862 [symbolic] +// CHECK:STDOUT: %impl.elem0.818: %.44e = impl_witness_access %Destroy.lookup_impl_witness.51e, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.ca7: = specific_impl_function %impl.elem0.818, @Destroy.WithSelf.Op.1(%impl.elem1.862) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] // CHECK:STDOUT: %pattern_type.e635: type = pattern_type %MutableRange [concrete] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] @@ -950,19 +950,19 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %NotEqual.type.53d9ee.1: type = fn_type @NotEqual.1 [concrete] // CHECK:STDOUT: %NotEqual.119263.1: %NotEqual.type.53d9ee.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.981: = custom_witness (%Equal.285b15.1, %NotEqual.119263.1), @EqWith, @EqWith(%Iterator.3ee) [concrete] -// CHECK:STDOUT: %facet_value.c6e: %CppRange_where.type.d682d6.1 = facet_value %MutableRange, (%custom_witness.df9cc1.3, %Copy.impl_witness.b51, %custom_witness.ed3, %custom_witness.955, %custom_witness.ef8, %custom_witness.444, %custom_witness.981) [concrete] +// CHECK:STDOUT: %facet_value.df3: %CppRange_where.type.d682d6.1 = facet_value %MutableRange, (%custom_witness.6c4ec3.1, %Copy.impl_witness.b51, %custom_witness.ed3, %custom_witness.955, %custom_witness.ef8, %custom_witness.444, %custom_witness.981) [concrete] // CHECK:STDOUT: %tuple.type.508: type = tuple_type (%Iterator.3ee, %Iterator.3ee) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.10: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.10: %Destroy.Op.type.1d8f74.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.10: = custom_witness (%Destroy.Op.1a2547.10), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.30f: %Destroy.type = facet_value %tuple.type.508, (%custom_witness.df9cc1.10) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.0b0: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.c6e) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.540: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.c6e) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.45a: %T.as_type.as.Iterate.impl.NewCursor.type.540 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.type.9d1: type = fn_type @T.as_type.as.Iterate.impl.Next, @T.as_type.as.Iterate.impl(%facet_value.c6e) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.a5b: %T.as_type.as.Iterate.impl.Next.type.9d1 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.fdf: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.0b0) [concrete] -// CHECK:STDOUT: %facet_value.8a3: %Iterate_where.type.01c = facet_value %MutableRange, (%Iterate.impl_witness.0b0) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.9: type = fn_type @Destroy.WithSelf.Op.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.9: %Destroy.WithSelf.Op.type.ef016f.9 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.9: = custom_witness (%Destroy.WithSelf.Op.403171.9), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.45a: %Destroy.type = facet_value %tuple.type.508, (%custom_witness.6c4ec3.9) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.589: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.df3) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.578: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.df3) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.e2d: %T.as_type.as.Iterate.impl.NewCursor.type.578 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.type.d15: type = fn_type @T.as_type.as.Iterate.impl.Next, @T.as_type.as.Iterate.impl(%facet_value.df3) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.fd1: %T.as_type.as.Iterate.impl.Next.type.d15 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.9b1: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.589) [concrete] +// CHECK:STDOUT: %facet_value.5eb: %Iterate_where.type.bdc = facet_value %MutableRange, (%Iterate.impl_witness.589) [concrete] // CHECK:STDOUT: %r.param_patt.c79: %pattern_type.e635 = value_param_pattern [concrete] // CHECK:STDOUT: %r.patt.94f: %pattern_type.e635 = wrapper_binding_pattern r, %r.param_patt.c79 [concrete] // CHECK:STDOUT: %Iterator.260: type = class_type @Iterator.2 [concrete] @@ -985,39 +985,39 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %NotEqual.type.53d9ee.2: type = fn_type @NotEqual.2 [concrete] // CHECK:STDOUT: %NotEqual.119263.2: %NotEqual.type.53d9ee.2 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.941: = custom_witness (%Equal.285b15.2, %NotEqual.119263.2), @EqWith, @EqWith(%Iterator.260) [concrete] -// CHECK:STDOUT: %facet_value.96f: %CppRange_where.type.d682d6.1 = facet_value %ConstRange, (%custom_witness.df9cc1.3, %Copy.impl_witness.b51, %custom_witness.23e, %custom_witness.6e8, %custom_witness.adb, %custom_witness.746, %custom_witness.941) [concrete] +// CHECK:STDOUT: %facet_value.b82: %CppRange_where.type.d682d6.1 = facet_value %ConstRange, (%custom_witness.6c4ec3.1, %Copy.impl_witness.b51, %custom_witness.23e, %custom_witness.6e8, %custom_witness.adb, %custom_witness.746, %custom_witness.941) [concrete] // CHECK:STDOUT: %tuple.type.69f: type = tuple_type (%Iterator.260, %Iterator.260) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.11: type = fn_type @Destroy.Op.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.11: %Destroy.Op.type.1d8f74.11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.11: = custom_witness (%Destroy.Op.1a2547.11), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.e4c: %Destroy.type = facet_value %tuple.type.69f, (%custom_witness.df9cc1.11) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.bb2: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.96f) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.356: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.96f) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.ab8: %T.as_type.as.Iterate.impl.NewCursor.type.356 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.type.64d: type = fn_type @T.as_type.as.Iterate.impl.Next, @T.as_type.as.Iterate.impl(%facet_value.96f) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.a02: %T.as_type.as.Iterate.impl.Next.type.64d = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.4c8: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.bb2) [concrete] -// CHECK:STDOUT: %facet_value.9af: %Iterate_where.type.01c = facet_value %ConstRange, (%Iterate.impl_witness.bb2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.10: type = fn_type @Destroy.WithSelf.Op.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.10: %Destroy.WithSelf.Op.type.ef016f.10 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.10: = custom_witness (%Destroy.WithSelf.Op.403171.10), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.e08: %Destroy.type = facet_value %tuple.type.69f, (%custom_witness.6c4ec3.10) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.978: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.b82) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.52c: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.b82) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.f99: %T.as_type.as.Iterate.impl.NewCursor.type.52c = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.type.c83: type = fn_type @T.as_type.as.Iterate.impl.Next, @T.as_type.as.Iterate.impl(%facet_value.b82) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.231: %T.as_type.as.Iterate.impl.Next.type.c83 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.6bf: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.978) [concrete] +// CHECK:STDOUT: %facet_value.cd8: %Iterate_where.type.bdc = facet_value %ConstRange, (%Iterate.impl_witness.978) [concrete] // CHECK:STDOUT: %r.param_patt.83e: %pattern_type.0ba = value_param_pattern [concrete] // CHECK:STDOUT: %r.patt.c21: %pattern_type.0ba = wrapper_binding_pattern r, %r.param_patt.83e [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.5e7: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.fdf) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.08a: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.fdf) [concrete] -// CHECK:STDOUT: %.641: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.5e7, %Iterate.facet.fdf [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.specific_fn.b38: = specific_function %T.as_type.as.Iterate.impl.NewCursor.45a, @T.as_type.as.Iterate.impl.NewCursor(%facet_value.c6e) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.6ac: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.9b1) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.5b5: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.9b1) [concrete] +// CHECK:STDOUT: %.03d: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.6ac, %Iterate.facet.9b1 [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.specific_fn.a90: = specific_function %T.as_type.as.Iterate.impl.NewCursor.e2d, @T.as_type.as.Iterate.impl.NewCursor(%facet_value.df3) [concrete] // CHECK:STDOUT: %ptr.45c: type = ptr_type %tuple.type.508 [concrete] -// CHECK:STDOUT: %.d1b: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.08a, %Iterate.facet.fdf [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn.b5a: = specific_function %T.as_type.as.Iterate.impl.Next.a5b, @T.as_type.as.Iterate.impl.Next(%facet_value.c6e) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c6c: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.30f) [concrete] -// CHECK:STDOUT: %.0a4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.c6c, %Destroy.facet.30f [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.9d7: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.4c8) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.f73: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.4c8) [concrete] -// CHECK:STDOUT: %.c93: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.9d7, %Iterate.facet.4c8 [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.specific_fn.31a: = specific_function %T.as_type.as.Iterate.impl.NewCursor.ab8, @T.as_type.as.Iterate.impl.NewCursor(%facet_value.96f) [concrete] +// CHECK:STDOUT: %.cd1: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.5b5, %Iterate.facet.9b1 [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn.e2f: = specific_function %T.as_type.as.Iterate.impl.Next.fd1, @T.as_type.as.Iterate.impl.Next(%facet_value.df3) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.4bb: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.45a) [concrete] +// CHECK:STDOUT: %.7a2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.4bb, %Destroy.facet.45a [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.147: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.6bf) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.e99: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.6bf) [concrete] +// CHECK:STDOUT: %.e7e: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.147, %Iterate.facet.6bf [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.specific_fn.574: = specific_function %T.as_type.as.Iterate.impl.NewCursor.f99, @T.as_type.as.Iterate.impl.NewCursor(%facet_value.b82) [concrete] // CHECK:STDOUT: %ptr.c5c: type = ptr_type %tuple.type.69f [concrete] -// CHECK:STDOUT: %.fe6: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.f73, %Iterate.facet.4c8 [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn.480: = specific_function %T.as_type.as.Iterate.impl.Next.a02, @T.as_type.as.Iterate.impl.Next(%facet_value.96f) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.7ec: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.e4c) [concrete] -// CHECK:STDOUT: %.0e7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.7ec, %Destroy.facet.e4c [concrete] +// CHECK:STDOUT: %.6b3: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.e99, %Iterate.facet.6bf [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn.faf: = specific_function %T.as_type.as.Iterate.impl.Next.231, @T.as_type.as.Iterate.impl.Next(%facet_value.b82) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.f64: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.e08) [concrete] +// CHECK:STDOUT: %.dc2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.f64, %Destroy.facet.e08 [concrete] // CHECK:STDOUT: %complete_type.c28: = complete_type_witness %tuple.type.508 [concrete] // CHECK:STDOUT: %complete_type.8d5: = complete_type_witness %tuple.type.69f [concrete] // CHECK:STDOUT: } @@ -1049,28 +1049,28 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %AnyInt.impl_witness_table = impl_witness_table (%Core.import_ref.47b, %Core.import_ref.49b), @Int.as.AnyInt.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TestIterate(%R.loc30_17.2: %Iterate_where.type.01c) { +// CHECK:STDOUT: generic fn @TestIterate(%R.loc30_17.2: %Iterate_where.type.bdc) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc30_17.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.403)] -// CHECK:STDOUT: %Iterate.facet.loc34_19.5: %Iterate.type = facet_value %R.as_type.loc30_61.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.a7e)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.loc34_19.5) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.d86)] -// CHECK:STDOUT: %.loc34_19.19: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet.loc34_19.5 [symbolic = %.loc34_19.19 (constants.%.7f7)] -// CHECK:STDOUT: %impl.elem2.loc34_19.2: @TestIterate.%.loc34_19.19 (%.7f7) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc34_19.2 (constants.%impl.elem2.680)] -// CHECK:STDOUT: %specific_impl_fn.loc34_19.4: = specific_impl_function %impl.elem2.loc34_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet.loc34_19.5) [symbolic = %specific_impl_fn.loc34_19.4 (constants.%specific_impl_fn.740)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc30_17.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.332)] +// CHECK:STDOUT: %Iterate.facet.loc34_19.5: %Iterate.type = facet_value %R.as_type.loc30_61.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.71c)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.loc34_19.5) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.b85)] +// CHECK:STDOUT: %.loc34_19.19: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet.loc34_19.5 [symbolic = %.loc34_19.19 (constants.%.c2f7)] +// CHECK:STDOUT: %impl.elem2.loc34_19.2: @TestIterate.%.loc34_19.19 (%.c2f7) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc34_19.2 (constants.%impl.elem2.176)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.4: = specific_impl_function %impl.elem2.loc34_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet.loc34_19.5) [symbolic = %specific_impl_fn.loc34_19.4 (constants.%specific_impl_fn.c8e)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.d7f)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.loc34_19.5) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.7ad)] -// CHECK:STDOUT: %.loc34_19.20: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc34_19.5 [symbolic = %.loc34_19.20 (constants.%.339)] -// CHECK:STDOUT: %impl.elem3.loc34_19.2: @TestIterate.%.loc34_19.20 (%.339) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc34_19.2 (constants.%impl.elem3.ffb)] -// CHECK:STDOUT: %specific_impl_fn.loc34_19.5: = specific_impl_function %impl.elem3.loc34_19.2, @Iterate.WithSelf.Next(%Iterate.facet.loc34_19.5) [symbolic = %specific_impl_fn.loc34_19.5 (constants.%specific_impl_fn.c09)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.76f)] -// CHECK:STDOUT: %.loc34_19.21: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc34_19.21 (constants.%.2f2)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.3c4)] -// CHECK:STDOUT: %impl.elem0.loc34_19.2: @TestIterate.%.loc34_19.21 (%.2f2) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_19.2 (constants.%impl.elem0.528)] -// CHECK:STDOUT: %specific_impl_fn.loc34_19.6: = specific_impl_function %impl.elem0.loc34_19.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc34_19.6 (constants.%specific_impl_fn.dfd)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.e4d)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.loc34_19.5) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.7c1)] +// CHECK:STDOUT: %.loc34_19.20: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc34_19.5 [symbolic = %.loc34_19.20 (constants.%.5c4)] +// CHECK:STDOUT: %impl.elem3.loc34_19.2: @TestIterate.%.loc34_19.20 (%.5c4) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc34_19.2 (constants.%impl.elem3.4ed)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.5: = specific_impl_function %impl.elem3.loc34_19.2, @Iterate.WithSelf.Next(%Iterate.facet.loc34_19.5) [symbolic = %specific_impl_fn.loc34_19.5 (constants.%specific_impl_fn.902)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.ec9)] +// CHECK:STDOUT: %.loc34_19.21: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc34_19.21 (constants.%.44e)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.51e)] +// CHECK:STDOUT: %impl.elem0.loc34_19.2: @TestIterate.%.loc34_19.21 (%.44e) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_19.2 (constants.%impl.elem0.818)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.6: = specific_impl_function %impl.elem0.loc34_19.2, @Destroy.WithSelf.Op.1(%impl.elem1) [symbolic = %specific_impl_fn.loc34_19.6 (constants.%specific_impl_fn.ca7)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%r.param: @TestIterate.%R.as_type.loc30_61.1 (%R.as_type)) { // CHECK:STDOUT: !entry: @@ -1079,52 +1079,52 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.patt: %pattern_type.6b6 = value_binding_pattern i [concrete = constants.%i.patt] // CHECK:STDOUT: } // CHECK:STDOUT: %r.ref: @TestIterate.%R.as_type.loc30_61.1 (%R.as_type) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc34_19.1: @TestIterate.%.loc34_19.19 (%.7f7) = impl_witness_access constants.%Iterate.lookup_impl_witness.403, element2 [symbolic = %impl.elem2.loc34_19.2 (constants.%impl.elem2.680)] +// CHECK:STDOUT: %impl.elem2.loc34_19.1: @TestIterate.%.loc34_19.19 (%.c2f7) = impl_witness_access constants.%Iterate.lookup_impl_witness.332, element2 [symbolic = %impl.elem2.loc34_19.2 (constants.%impl.elem2.176)] // CHECK:STDOUT: %bound_method.loc34_19.1: = bound_method %r.ref, %impl.elem2.loc34_19.1 -// CHECK:STDOUT: %Iterate.facet.loc34_19.1: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.403) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.a7e)] -// CHECK:STDOUT: %.loc34_19.1: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc34_19.1 [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.a7e)] -// CHECK:STDOUT: %Iterate.facet.loc34_19.2: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.403) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.a7e)] -// CHECK:STDOUT: %.loc34_19.2: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc34_19.2 [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.a7e)] -// CHECK:STDOUT: %specific_impl_fn.loc34_19.1: = specific_impl_function %impl.elem2.loc34_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.a7e) [symbolic = %specific_impl_fn.loc34_19.4 (constants.%specific_impl_fn.740)] +// CHECK:STDOUT: %Iterate.facet.loc34_19.1: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.332) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.71c)] +// CHECK:STDOUT: %.loc34_19.1: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc34_19.1 [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.71c)] +// CHECK:STDOUT: %Iterate.facet.loc34_19.2: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.332) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.71c)] +// CHECK:STDOUT: %.loc34_19.2: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc34_19.2 [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.71c)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.1: = specific_impl_function %impl.elem2.loc34_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.71c) [symbolic = %specific_impl_fn.loc34_19.4 (constants.%specific_impl_fn.c8e)] // CHECK:STDOUT: %bound_method.loc34_19.2: = bound_method %r.ref, %specific_impl_fn.loc34_19.1 -// CHECK:STDOUT: %var: ref @TestIterate.%as_type (%as_type.038) = var_storage invalid -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @TestIterate.%as_type (%as_type.038) to %var = call %bound_method.loc34_19.2(%r.ref) +// CHECK:STDOUT: %var: ref @TestIterate.%as_type (%as_type.3aa) = var_storage invalid +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @TestIterate.%as_type (%as_type.3aa) to %var = call %bound_method.loc34_19.2(%r.ref) // CHECK:STDOUT: assign %var, %Iterate.WithSelf.NewCursor.call // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.next: -// CHECK:STDOUT: %addr: @TestIterate.%ptr (%ptr.d7f) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc34_19.1: @TestIterate.%.loc34_19.20 (%.339) = impl_witness_access constants.%Iterate.lookup_impl_witness.403, element3 [symbolic = %impl.elem3.loc34_19.2 (constants.%impl.elem3.ffb)] +// CHECK:STDOUT: %addr: @TestIterate.%ptr (%ptr.e4d) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc34_19.1: @TestIterate.%.loc34_19.20 (%.5c4) = impl_witness_access constants.%Iterate.lookup_impl_witness.332, element3 [symbolic = %impl.elem3.loc34_19.2 (constants.%impl.elem3.4ed)] // CHECK:STDOUT: %bound_method.loc34_19.3: = bound_method %r.ref, %impl.elem3.loc34_19.1 -// CHECK:STDOUT: %Iterate.facet.loc34_19.3: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.403) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.a7e)] -// CHECK:STDOUT: %.loc34_19.3: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc34_19.3 [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.a7e)] -// CHECK:STDOUT: %Iterate.facet.loc34_19.4: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.403) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.a7e)] -// CHECK:STDOUT: %.loc34_19.4: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc34_19.4 [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.a7e)] -// CHECK:STDOUT: %.loc34_19.5: %Destroy.type = converted constants.%as_type.038, constants.%impl.elem1.595 [symbolic = %impl.elem1 (constants.%impl.elem1.595)] -// CHECK:STDOUT: %.loc34_19.6: %Destroy.type = converted constants.%as_type.038, constants.%impl.elem1.595 [symbolic = %impl.elem1 (constants.%impl.elem1.595)] -// CHECK:STDOUT: %specific_impl_fn.loc34_19.2: = specific_impl_function %impl.elem3.loc34_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.a7e) [symbolic = %specific_impl_fn.loc34_19.5 (constants.%specific_impl_fn.c09)] +// CHECK:STDOUT: %Iterate.facet.loc34_19.3: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.332) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.71c)] +// CHECK:STDOUT: %.loc34_19.3: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc34_19.3 [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.71c)] +// CHECK:STDOUT: %Iterate.facet.loc34_19.4: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.332) [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.71c)] +// CHECK:STDOUT: %.loc34_19.4: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc34_19.4 [symbolic = %Iterate.facet.loc34_19.5 (constants.%Iterate.facet.71c)] +// CHECK:STDOUT: %.loc34_19.5: %Destroy.type = converted constants.%as_type.3aa, constants.%impl.elem1.862 [symbolic = %impl.elem1 (constants.%impl.elem1.862)] +// CHECK:STDOUT: %.loc34_19.6: %Destroy.type = converted constants.%as_type.3aa, constants.%impl.elem1.862 [symbolic = %impl.elem1 (constants.%impl.elem1.862)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.2: = specific_impl_function %impl.elem3.loc34_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.71c) [symbolic = %specific_impl_fn.loc34_19.5 (constants.%specific_impl_fn.902)] // CHECK:STDOUT: %bound_method.loc34_19.4: = bound_method %r.ref, %specific_impl_fn.loc34_19.2 -// CHECK:STDOUT: %.loc34_19.7: ref %Optional.755 = temporary_storage -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.755 to %.loc34_19.7 = call %bound_method.loc34_19.4(%r.ref, %addr) -// CHECK:STDOUT: %.loc34_19.8: ref %Optional.755 = temporary %.loc34_19.7, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc34_19.9: %Optional.HasValue.type.af3 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.HasValue.4f6] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.af3 = name_ref HasValue, %.loc34_19.9 [concrete = constants.%Optional.HasValue.4f6] +// CHECK:STDOUT: %.loc34_19.7: ref %Optional.6f7 = temporary_storage +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.6f7 to %.loc34_19.7 = call %bound_method.loc34_19.4(%r.ref, %addr) +// CHECK:STDOUT: %.loc34_19.8: ref %Optional.6f7 = temporary %.loc34_19.7, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc34_19.9: %Optional.HasValue.type.818 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.HasValue.655] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.818 = name_ref HasValue, %.loc34_19.9 [concrete = constants.%Optional.HasValue.655] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc34_19.8, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.HasValue.specific_fn.b8c] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.HasValue.specific_fn.551] // CHECK:STDOUT: %bound_method.loc34_19.5: = bound_method %.loc34_19.8, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc34_19.10: %Optional.755 = acquire_value %.loc34_19.8 +// CHECK:STDOUT: %.loc34_19.10: %Optional.6f7 = acquire_value %.loc34_19.8 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc34_19.5(%.loc34_19.10) // CHECK:STDOUT: %.loc34_19.11: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc34_19.12: bool = converted %Optional.HasValue.call, %.loc34_19.11 // CHECK:STDOUT: if %.loc34_19.12 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc34_19.13: %Optional.Get.type.336 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.Get.0a8] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.336 = name_ref Get, %.loc34_19.13 [concrete = constants.%Optional.Get.0a8] +// CHECK:STDOUT: %.loc34_19.13: %Optional.Get.type.054 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.Get.a58] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.054 = name_ref Get, %.loc34_19.13 [concrete = constants.%Optional.Get.a58] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc34_19.8, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.Get.specific_fn.fc5] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.Get.specific_fn.326] // CHECK:STDOUT: %bound_method.loc34_19.6: = bound_method %.loc34_19.8, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc34_19.14: %Optional.755 = acquire_value %.loc34_19.8 +// CHECK:STDOUT: %.loc34_19.14: %Optional.6f7 = acquire_value %.loc34_19.8 // CHECK:STDOUT: %Optional.Get.call: init %i32 = call %bound_method.loc34_19.6(%.loc34_19.14) // CHECK:STDOUT: %.loc34_19.15: %i32 = value_of_initializer %Optional.Get.call // CHECK:STDOUT: %.loc34_19.16: %i32 = converted %Optional.Get.call, %.loc34_19.15 @@ -1142,47 +1142,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Int.as.AddAssignWith.impl.Op.2(constants.%int_32, constants.%ImplicitAs.facet.e88) [concrete = constants.%Int.as.AddAssignWith.impl.Op.specific_fn.d76216.2] // CHECK:STDOUT: %bound_method.loc35_9.3: = bound_method %sum.ref, %Int.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc35_9.3(%sum.ref, %i.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc34_19.1: = bound_method %.loc34_19.8, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc34_19.1: init %empty_tuple.type = call %Destroy.Op.bound.loc34_19.1(%.loc34_19.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc34_19.1: = bound_method %.loc34_19.8, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc34_19.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc34_19.1(%.loc34_19.8) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc34_19.2: = bound_method %.loc34_19.8, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc34_19.2: init %empty_tuple.type = call %Destroy.Op.bound.loc34_19.2(%.loc34_19.8) -// CHECK:STDOUT: %impl.elem0.loc34_19.1: @TestIterate.%.loc34_19.21 (%.2f2) = impl_witness_access constants.%Destroy.lookup_impl_witness.3c4, element0 [symbolic = %impl.elem0.loc34_19.2 (constants.%impl.elem0.528)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc34_19.2: = bound_method %.loc34_19.8, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc34_19.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc34_19.2(%.loc34_19.8) +// CHECK:STDOUT: %impl.elem0.loc34_19.1: @TestIterate.%.loc34_19.21 (%.44e) = impl_witness_access constants.%Destroy.lookup_impl_witness.51e, element0 [symbolic = %impl.elem0.loc34_19.2 (constants.%impl.elem0.818)] // CHECK:STDOUT: %bound_method.loc34_19.7: = bound_method %var, %impl.elem0.loc34_19.1 -// CHECK:STDOUT: %.loc34_19.17: %Destroy.type = converted constants.%as_type.038, constants.%impl.elem1.595 [symbolic = %impl.elem1 (constants.%impl.elem1.595)] -// CHECK:STDOUT: %.loc34_19.18: %Destroy.type = converted constants.%as_type.038, constants.%impl.elem1.595 [symbolic = %impl.elem1 (constants.%impl.elem1.595)] -// CHECK:STDOUT: %specific_impl_fn.loc34_19.3: = specific_impl_function %impl.elem0.loc34_19.1, @Destroy.WithSelf.Op(constants.%impl.elem1.595) [symbolic = %specific_impl_fn.loc34_19.6 (constants.%specific_impl_fn.dfd)] +// CHECK:STDOUT: %.loc34_19.17: %Destroy.type = converted constants.%as_type.3aa, constants.%impl.elem1.862 [symbolic = %impl.elem1 (constants.%impl.elem1.862)] +// CHECK:STDOUT: %.loc34_19.18: %Destroy.type = converted constants.%as_type.3aa, constants.%impl.elem1.862 [symbolic = %impl.elem1 (constants.%impl.elem1.862)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.3: = specific_impl_function %impl.elem0.loc34_19.1, @Destroy.WithSelf.Op.1(constants.%impl.elem1.862) [symbolic = %specific_impl_fn.loc34_19.6 (constants.%specific_impl_fn.ca7)] // CHECK:STDOUT: %bound_method.loc34_19.8: = bound_method %var, %specific_impl_fn.loc34_19.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc34_19.8(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc34_19.3: init %empty_tuple.type = call %bound_method.loc34_19.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.1(%self.param: ref %.1d6a7) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_19.1(%self.param: ref %.1d6a7) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.2(%self.param: ref %MaybeUnformed.023) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_19.2(%self.param: ref %MaybeUnformed.c1d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.3(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_19.3(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.4(%self.param: ref %struct_type.value.has_value.ad0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_19.4(%self.param: ref %struct_type.value.has_value.271) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.5(%self.param: ref %DefaultOptionalStorage.bfa) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_19.5(%self.param: ref %DefaultOptionalStorage.99e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.6(%self.param: ref %Optional.755) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_19.6(%self.param: ref %Optional.6f7) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1194,13 +1194,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.patt.loc49: %pattern_type.6b6 = value_binding_pattern i [concrete = constants.%i.patt] // CHECK:STDOUT: } // CHECK:STDOUT: %m.ref: ref %MutableRange = name_ref m, %m -// CHECK:STDOUT: %impl.elem2.loc49: %.641 = impl_witness_access constants.%Iterate.impl_witness.0b0, element2 [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.45a] +// CHECK:STDOUT: %impl.elem2.loc49: %.03d = impl_witness_access constants.%Iterate.impl_witness.589, element2 [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.e2d] // CHECK:STDOUT: %bound_method.loc49_19.1: = bound_method %m.ref, %impl.elem2.loc49 -// CHECK:STDOUT: %facet_value.loc49_19.1: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.b51, constants.%custom_witness.ed3, constants.%custom_witness.955, constants.%custom_witness.ef8, constants.%custom_witness.444, constants.%custom_witness.981) [concrete = constants.%facet_value.c6e] -// CHECK:STDOUT: %.loc49_19.1: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc49_19.1 [concrete = constants.%facet_value.c6e] -// CHECK:STDOUT: %facet_value.loc49_19.2: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.b51, constants.%custom_witness.ed3, constants.%custom_witness.955, constants.%custom_witness.ef8, constants.%custom_witness.444, constants.%custom_witness.981) [concrete = constants.%facet_value.c6e] -// CHECK:STDOUT: %.loc49_19.2: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc49_19.2 [concrete = constants.%facet_value.c6e] -// CHECK:STDOUT: %specific_fn.loc49_19.1: = specific_function %impl.elem2.loc49, @T.as_type.as.Iterate.impl.NewCursor(constants.%facet_value.c6e) [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.b38] +// CHECK:STDOUT: %facet_value.loc49_19.1: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.6c4ec3.1, constants.%Copy.impl_witness.b51, constants.%custom_witness.ed3, constants.%custom_witness.955, constants.%custom_witness.ef8, constants.%custom_witness.444, constants.%custom_witness.981) [concrete = constants.%facet_value.df3] +// CHECK:STDOUT: %.loc49_19.1: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc49_19.1 [concrete = constants.%facet_value.df3] +// CHECK:STDOUT: %facet_value.loc49_19.2: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.6c4ec3.1, constants.%Copy.impl_witness.b51, constants.%custom_witness.ed3, constants.%custom_witness.955, constants.%custom_witness.ef8, constants.%custom_witness.444, constants.%custom_witness.981) [concrete = constants.%facet_value.df3] +// CHECK:STDOUT: %.loc49_19.2: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc49_19.2 [concrete = constants.%facet_value.df3] +// CHECK:STDOUT: %specific_fn.loc49_19.1: = specific_function %impl.elem2.loc49, @T.as_type.as.Iterate.impl.NewCursor(constants.%facet_value.df3) [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.a90] // CHECK:STDOUT: %bound_method.loc49_19.2: = bound_method %m.ref, %specific_fn.loc49_19.1 // CHECK:STDOUT: %var.loc49: ref %tuple.type.508 = var_storage invalid // CHECK:STDOUT: %.loc49_18.1: %MutableRange = acquire_value %m.ref @@ -1210,36 +1210,36 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: // CHECK:STDOUT: !for.next.loc49: // CHECK:STDOUT: %addr.loc49: %ptr.45c = addr_of %var.loc49 -// CHECK:STDOUT: %impl.elem3.loc49: %.d1b = impl_witness_access constants.%Iterate.impl_witness.0b0, element3 [concrete = constants.%T.as_type.as.Iterate.impl.Next.a5b] +// CHECK:STDOUT: %impl.elem3.loc49: %.cd1 = impl_witness_access constants.%Iterate.impl_witness.589, element3 [concrete = constants.%T.as_type.as.Iterate.impl.Next.fd1] // CHECK:STDOUT: %bound_method.loc49_19.3: = bound_method %m.ref, %impl.elem3.loc49 -// CHECK:STDOUT: %facet_value.loc49_19.3: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.b51, constants.%custom_witness.ed3, constants.%custom_witness.955, constants.%custom_witness.ef8, constants.%custom_witness.444, constants.%custom_witness.981) [concrete = constants.%facet_value.c6e] -// CHECK:STDOUT: %.loc49_19.3: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc49_19.3 [concrete = constants.%facet_value.c6e] -// CHECK:STDOUT: %facet_value.loc49_19.4: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.b51, constants.%custom_witness.ed3, constants.%custom_witness.955, constants.%custom_witness.ef8, constants.%custom_witness.444, constants.%custom_witness.981) [concrete = constants.%facet_value.c6e] -// CHECK:STDOUT: %.loc49_19.4: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc49_19.4 [concrete = constants.%facet_value.c6e] -// CHECK:STDOUT: %specific_fn.loc49_19.2: = specific_function %impl.elem3.loc49, @T.as_type.as.Iterate.impl.Next(constants.%facet_value.c6e) [concrete = constants.%T.as_type.as.Iterate.impl.Next.specific_fn.b5a] +// CHECK:STDOUT: %facet_value.loc49_19.3: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.6c4ec3.1, constants.%Copy.impl_witness.b51, constants.%custom_witness.ed3, constants.%custom_witness.955, constants.%custom_witness.ef8, constants.%custom_witness.444, constants.%custom_witness.981) [concrete = constants.%facet_value.df3] +// CHECK:STDOUT: %.loc49_19.3: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc49_19.3 [concrete = constants.%facet_value.df3] +// CHECK:STDOUT: %facet_value.loc49_19.4: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.6c4ec3.1, constants.%Copy.impl_witness.b51, constants.%custom_witness.ed3, constants.%custom_witness.955, constants.%custom_witness.ef8, constants.%custom_witness.444, constants.%custom_witness.981) [concrete = constants.%facet_value.df3] +// CHECK:STDOUT: %.loc49_19.4: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc49_19.4 [concrete = constants.%facet_value.df3] +// CHECK:STDOUT: %specific_fn.loc49_19.2: = specific_function %impl.elem3.loc49, @T.as_type.as.Iterate.impl.Next(constants.%facet_value.df3) [concrete = constants.%T.as_type.as.Iterate.impl.Next.specific_fn.e2f] // CHECK:STDOUT: %bound_method.loc49_19.4: = bound_method %m.ref, %specific_fn.loc49_19.2 -// CHECK:STDOUT: %.loc49_19.5: ref %Optional.755 = temporary_storage +// CHECK:STDOUT: %.loc49_19.5: ref %Optional.6f7 = temporary_storage // CHECK:STDOUT: %.loc49_18.2: %MutableRange = acquire_value %m.ref -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.call.loc49: init %Optional.755 to %.loc49_19.5 = call %bound_method.loc49_19.4(%.loc49_18.2, %addr.loc49) -// CHECK:STDOUT: %.loc49_19.6: ref %Optional.755 = temporary %.loc49_19.5, %T.as_type.as.Iterate.impl.Next.call.loc49 -// CHECK:STDOUT: %.loc49_19.7: %Optional.HasValue.type.af3 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.HasValue.4f6] -// CHECK:STDOUT: %HasValue.ref.loc49: %Optional.HasValue.type.af3 = name_ref HasValue, %.loc49_19.7 [concrete = constants.%Optional.HasValue.4f6] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.call.loc49: init %Optional.6f7 to %.loc49_19.5 = call %bound_method.loc49_19.4(%.loc49_18.2, %addr.loc49) +// CHECK:STDOUT: %.loc49_19.6: ref %Optional.6f7 = temporary %.loc49_19.5, %T.as_type.as.Iterate.impl.Next.call.loc49 +// CHECK:STDOUT: %.loc49_19.7: %Optional.HasValue.type.818 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.HasValue.655] +// CHECK:STDOUT: %HasValue.ref.loc49: %Optional.HasValue.type.818 = name_ref HasValue, %.loc49_19.7 [concrete = constants.%Optional.HasValue.655] // CHECK:STDOUT: %Optional.HasValue.bound.loc49: = bound_method %.loc49_19.6, %HasValue.ref.loc49 -// CHECK:STDOUT: %Optional.HasValue.specific_fn.loc49: = specific_function %HasValue.ref.loc49, @Optional.HasValue(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.HasValue.specific_fn.b8c] +// CHECK:STDOUT: %Optional.HasValue.specific_fn.loc49: = specific_function %HasValue.ref.loc49, @Optional.HasValue(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.HasValue.specific_fn.551] // CHECK:STDOUT: %bound_method.loc49_19.5: = bound_method %.loc49_19.6, %Optional.HasValue.specific_fn.loc49 -// CHECK:STDOUT: %.loc49_19.8: %Optional.755 = acquire_value %.loc49_19.6 +// CHECK:STDOUT: %.loc49_19.8: %Optional.6f7 = acquire_value %.loc49_19.6 // CHECK:STDOUT: %Optional.HasValue.call.loc49: init bool = call %bound_method.loc49_19.5(%.loc49_19.8) // CHECK:STDOUT: %.loc49_19.9: bool = value_of_initializer %Optional.HasValue.call.loc49 // CHECK:STDOUT: %.loc49_19.10: bool = converted %Optional.HasValue.call.loc49, %.loc49_19.9 // CHECK:STDOUT: if %.loc49_19.10 br !for.body.loc49 else br !for.done.loc49 // CHECK:STDOUT: // CHECK:STDOUT: !for.body.loc49: -// CHECK:STDOUT: %.loc49_19.11: %Optional.Get.type.336 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.Get.0a8] -// CHECK:STDOUT: %Get.ref.loc49: %Optional.Get.type.336 = name_ref Get, %.loc49_19.11 [concrete = constants.%Optional.Get.0a8] +// CHECK:STDOUT: %.loc49_19.11: %Optional.Get.type.054 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.Get.a58] +// CHECK:STDOUT: %Get.ref.loc49: %Optional.Get.type.054 = name_ref Get, %.loc49_19.11 [concrete = constants.%Optional.Get.a58] // CHECK:STDOUT: %Optional.Get.bound.loc49: = bound_method %.loc49_19.6, %Get.ref.loc49 -// CHECK:STDOUT: %Optional.Get.specific_fn.loc49: = specific_function %Get.ref.loc49, @Optional.Get(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.Get.specific_fn.fc5] +// CHECK:STDOUT: %Optional.Get.specific_fn.loc49: = specific_function %Get.ref.loc49, @Optional.Get(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.Get.specific_fn.326] // CHECK:STDOUT: %bound_method.loc49_19.6: = bound_method %.loc49_19.6, %Optional.Get.specific_fn.loc49 -// CHECK:STDOUT: %.loc49_19.12: %Optional.755 = acquire_value %.loc49_19.6 +// CHECK:STDOUT: %.loc49_19.12: %Optional.6f7 = acquire_value %.loc49_19.6 // CHECK:STDOUT: %Optional.Get.call.loc49: init %i32 = call %bound_method.loc49_19.6(%.loc49_19.12) // CHECK:STDOUT: %.loc49_19.13: %i32 = value_of_initializer %Optional.Get.call.loc49 // CHECK:STDOUT: %.loc49_19.14: %i32 = converted %Optional.Get.call.loc49, %.loc49_19.13 @@ -1257,26 +1257,26 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.specific_fn.loc50: = specific_function %Op.ref.loc50, @Int.as.AddAssignWith.impl.Op.2(constants.%int_32, constants.%ImplicitAs.facet.e88) [concrete = constants.%Int.as.AddAssignWith.impl.Op.specific_fn.d76216.2] // CHECK:STDOUT: %bound_method.loc50_9.3: = bound_method %sum.ref.loc50, %Int.as.AddAssignWith.impl.Op.specific_fn.loc50 // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.call.loc50: init %empty_tuple.type = call %bound_method.loc50_9.3(%sum.ref.loc50, %i.ref.loc50) -// CHECK:STDOUT: %Destroy.Op.bound.loc49_19.1: = bound_method %.loc49_19.6, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc49_19.1: init %empty_tuple.type = call %Destroy.Op.bound.loc49_19.1(%.loc49_19.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc49_19.1: = bound_method %.loc49_19.6, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc49_19.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc49_19.1(%.loc49_19.6) // CHECK:STDOUT: br !for.next.loc49 // CHECK:STDOUT: // CHECK:STDOUT: !for.done.loc49: -// CHECK:STDOUT: %Destroy.Op.bound.loc49_19.2: = bound_method %.loc49_19.6, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc49_19.2: init %empty_tuple.type = call %Destroy.Op.bound.loc49_19.2(%.loc49_19.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc49_19.3: = bound_method %var.loc49, constants.%Destroy.Op.1a2547.10 -// CHECK:STDOUT: %Destroy.Op.call.loc49_19.3: init %empty_tuple.type = call %Destroy.Op.bound.loc49_19.3(%var.loc49) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc49_19.2: = bound_method %.loc49_19.6, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc49_19.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc49_19.2(%.loc49_19.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc49_19.3: = bound_method %var.loc49, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc49_19.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc49_19.3(%var.loc49) // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %i.patt.loc55: %pattern_type.6b6 = value_binding_pattern i [concrete = constants.%i.patt] // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref: %ConstRange = name_ref c, %c -// CHECK:STDOUT: %impl.elem2.loc55: %.c93 = impl_witness_access constants.%Iterate.impl_witness.bb2, element2 [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.ab8] +// CHECK:STDOUT: %impl.elem2.loc55: %.e7e = impl_witness_access constants.%Iterate.impl_witness.978, element2 [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.f99] // CHECK:STDOUT: %bound_method.loc55_19.1: = bound_method %c.ref, %impl.elem2.loc55 -// CHECK:STDOUT: %facet_value.loc55_19.1: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.b51, constants.%custom_witness.23e, constants.%custom_witness.6e8, constants.%custom_witness.adb, constants.%custom_witness.746, constants.%custom_witness.941) [concrete = constants.%facet_value.96f] -// CHECK:STDOUT: %.loc55_19.1: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc55_19.1 [concrete = constants.%facet_value.96f] -// CHECK:STDOUT: %facet_value.loc55_19.2: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.b51, constants.%custom_witness.23e, constants.%custom_witness.6e8, constants.%custom_witness.adb, constants.%custom_witness.746, constants.%custom_witness.941) [concrete = constants.%facet_value.96f] -// CHECK:STDOUT: %.loc55_19.2: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc55_19.2 [concrete = constants.%facet_value.96f] -// CHECK:STDOUT: %specific_fn.loc55_19.1: = specific_function %impl.elem2.loc55, @T.as_type.as.Iterate.impl.NewCursor(constants.%facet_value.96f) [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.31a] +// CHECK:STDOUT: %facet_value.loc55_19.1: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.6c4ec3.1, constants.%Copy.impl_witness.b51, constants.%custom_witness.23e, constants.%custom_witness.6e8, constants.%custom_witness.adb, constants.%custom_witness.746, constants.%custom_witness.941) [concrete = constants.%facet_value.b82] +// CHECK:STDOUT: %.loc55_19.1: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc55_19.1 [concrete = constants.%facet_value.b82] +// CHECK:STDOUT: %facet_value.loc55_19.2: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.6c4ec3.1, constants.%Copy.impl_witness.b51, constants.%custom_witness.23e, constants.%custom_witness.6e8, constants.%custom_witness.adb, constants.%custom_witness.746, constants.%custom_witness.941) [concrete = constants.%facet_value.b82] +// CHECK:STDOUT: %.loc55_19.2: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc55_19.2 [concrete = constants.%facet_value.b82] +// CHECK:STDOUT: %specific_fn.loc55_19.1: = specific_function %impl.elem2.loc55, @T.as_type.as.Iterate.impl.NewCursor(constants.%facet_value.b82) [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.574] // CHECK:STDOUT: %bound_method.loc55_19.2: = bound_method %c.ref, %specific_fn.loc55_19.1 // CHECK:STDOUT: %var.loc55: ref %tuple.type.69f = var_storage invalid // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.call.loc55: init %tuple.type.69f to %var.loc55 = call %bound_method.loc55_19.2(%c.ref) @@ -1285,35 +1285,35 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: // CHECK:STDOUT: !for.next.loc55: // CHECK:STDOUT: %addr.loc55: %ptr.c5c = addr_of %var.loc55 -// CHECK:STDOUT: %impl.elem3.loc55: %.fe6 = impl_witness_access constants.%Iterate.impl_witness.bb2, element3 [concrete = constants.%T.as_type.as.Iterate.impl.Next.a02] +// CHECK:STDOUT: %impl.elem3.loc55: %.6b3 = impl_witness_access constants.%Iterate.impl_witness.978, element3 [concrete = constants.%T.as_type.as.Iterate.impl.Next.231] // CHECK:STDOUT: %bound_method.loc55_19.3: = bound_method %c.ref, %impl.elem3.loc55 -// CHECK:STDOUT: %facet_value.loc55_19.3: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.b51, constants.%custom_witness.23e, constants.%custom_witness.6e8, constants.%custom_witness.adb, constants.%custom_witness.746, constants.%custom_witness.941) [concrete = constants.%facet_value.96f] -// CHECK:STDOUT: %.loc55_19.3: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc55_19.3 [concrete = constants.%facet_value.96f] -// CHECK:STDOUT: %facet_value.loc55_19.4: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.b51, constants.%custom_witness.23e, constants.%custom_witness.6e8, constants.%custom_witness.adb, constants.%custom_witness.746, constants.%custom_witness.941) [concrete = constants.%facet_value.96f] -// CHECK:STDOUT: %.loc55_19.4: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc55_19.4 [concrete = constants.%facet_value.96f] -// CHECK:STDOUT: %specific_fn.loc55_19.2: = specific_function %impl.elem3.loc55, @T.as_type.as.Iterate.impl.Next(constants.%facet_value.96f) [concrete = constants.%T.as_type.as.Iterate.impl.Next.specific_fn.480] +// CHECK:STDOUT: %facet_value.loc55_19.3: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.6c4ec3.1, constants.%Copy.impl_witness.b51, constants.%custom_witness.23e, constants.%custom_witness.6e8, constants.%custom_witness.adb, constants.%custom_witness.746, constants.%custom_witness.941) [concrete = constants.%facet_value.b82] +// CHECK:STDOUT: %.loc55_19.3: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc55_19.3 [concrete = constants.%facet_value.b82] +// CHECK:STDOUT: %facet_value.loc55_19.4: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.6c4ec3.1, constants.%Copy.impl_witness.b51, constants.%custom_witness.23e, constants.%custom_witness.6e8, constants.%custom_witness.adb, constants.%custom_witness.746, constants.%custom_witness.941) [concrete = constants.%facet_value.b82] +// CHECK:STDOUT: %.loc55_19.4: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc55_19.4 [concrete = constants.%facet_value.b82] +// CHECK:STDOUT: %specific_fn.loc55_19.2: = specific_function %impl.elem3.loc55, @T.as_type.as.Iterate.impl.Next(constants.%facet_value.b82) [concrete = constants.%T.as_type.as.Iterate.impl.Next.specific_fn.faf] // CHECK:STDOUT: %bound_method.loc55_19.4: = bound_method %c.ref, %specific_fn.loc55_19.2 -// CHECK:STDOUT: %.loc55_19.5: ref %Optional.755 = temporary_storage -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.call.loc55: init %Optional.755 to %.loc55_19.5 = call %bound_method.loc55_19.4(%c.ref, %addr.loc55) -// CHECK:STDOUT: %.loc55_19.6: ref %Optional.755 = temporary %.loc55_19.5, %T.as_type.as.Iterate.impl.Next.call.loc55 -// CHECK:STDOUT: %.loc55_19.7: %Optional.HasValue.type.af3 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.HasValue.4f6] -// CHECK:STDOUT: %HasValue.ref.loc55: %Optional.HasValue.type.af3 = name_ref HasValue, %.loc55_19.7 [concrete = constants.%Optional.HasValue.4f6] +// CHECK:STDOUT: %.loc55_19.5: ref %Optional.6f7 = temporary_storage +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.call.loc55: init %Optional.6f7 to %.loc55_19.5 = call %bound_method.loc55_19.4(%c.ref, %addr.loc55) +// CHECK:STDOUT: %.loc55_19.6: ref %Optional.6f7 = temporary %.loc55_19.5, %T.as_type.as.Iterate.impl.Next.call.loc55 +// CHECK:STDOUT: %.loc55_19.7: %Optional.HasValue.type.818 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.HasValue.655] +// CHECK:STDOUT: %HasValue.ref.loc55: %Optional.HasValue.type.818 = name_ref HasValue, %.loc55_19.7 [concrete = constants.%Optional.HasValue.655] // CHECK:STDOUT: %Optional.HasValue.bound.loc55: = bound_method %.loc55_19.6, %HasValue.ref.loc55 -// CHECK:STDOUT: %Optional.HasValue.specific_fn.loc55: = specific_function %HasValue.ref.loc55, @Optional.HasValue(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.HasValue.specific_fn.b8c] +// CHECK:STDOUT: %Optional.HasValue.specific_fn.loc55: = specific_function %HasValue.ref.loc55, @Optional.HasValue(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.HasValue.specific_fn.551] // CHECK:STDOUT: %bound_method.loc55_19.5: = bound_method %.loc55_19.6, %Optional.HasValue.specific_fn.loc55 -// CHECK:STDOUT: %.loc55_19.8: %Optional.755 = acquire_value %.loc55_19.6 +// CHECK:STDOUT: %.loc55_19.8: %Optional.6f7 = acquire_value %.loc55_19.6 // CHECK:STDOUT: %Optional.HasValue.call.loc55: init bool = call %bound_method.loc55_19.5(%.loc55_19.8) // CHECK:STDOUT: %.loc55_19.9: bool = value_of_initializer %Optional.HasValue.call.loc55 // CHECK:STDOUT: %.loc55_19.10: bool = converted %Optional.HasValue.call.loc55, %.loc55_19.9 // CHECK:STDOUT: if %.loc55_19.10 br !for.body.loc55 else br !for.done.loc55 // CHECK:STDOUT: // CHECK:STDOUT: !for.body.loc55: -// CHECK:STDOUT: %.loc55_19.11: %Optional.Get.type.336 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.Get.0a8] -// CHECK:STDOUT: %Get.ref.loc55: %Optional.Get.type.336 = name_ref Get, %.loc55_19.11 [concrete = constants.%Optional.Get.0a8] +// CHECK:STDOUT: %.loc55_19.11: %Optional.Get.type.054 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.Get.a58] +// CHECK:STDOUT: %Get.ref.loc55: %Optional.Get.type.054 = name_ref Get, %.loc55_19.11 [concrete = constants.%Optional.Get.a58] // CHECK:STDOUT: %Optional.Get.bound.loc55: = bound_method %.loc55_19.6, %Get.ref.loc55 -// CHECK:STDOUT: %Optional.Get.specific_fn.loc55: = specific_function %Get.ref.loc55, @Optional.Get(constants.%OptionalStorage.facet.097) [concrete = constants.%Optional.Get.specific_fn.fc5] +// CHECK:STDOUT: %Optional.Get.specific_fn.loc55: = specific_function %Get.ref.loc55, @Optional.Get(constants.%OptionalStorage.facet.375) [concrete = constants.%Optional.Get.specific_fn.326] // CHECK:STDOUT: %bound_method.loc55_19.6: = bound_method %.loc55_19.6, %Optional.Get.specific_fn.loc55 -// CHECK:STDOUT: %.loc55_19.12: %Optional.755 = acquire_value %.loc55_19.6 +// CHECK:STDOUT: %.loc55_19.12: %Optional.6f7 = acquire_value %.loc55_19.6 // CHECK:STDOUT: %Optional.Get.call.loc55: init %i32 = call %bound_method.loc55_19.6(%.loc55_19.12) // CHECK:STDOUT: %.loc55_19.13: %i32 = value_of_initializer %Optional.Get.call.loc55 // CHECK:STDOUT: %.loc55_19.14: %i32 = converted %Optional.Get.call.loc55, %.loc55_19.13 @@ -1331,15 +1331,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.specific_fn.loc56: = specific_function %Op.ref.loc56, @Int.as.AddAssignWith.impl.Op.2(constants.%int_32, constants.%ImplicitAs.facet.e88) [concrete = constants.%Int.as.AddAssignWith.impl.Op.specific_fn.d76216.2] // CHECK:STDOUT: %bound_method.loc56_9.3: = bound_method %sum.ref.loc56, %Int.as.AddAssignWith.impl.Op.specific_fn.loc56 // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.call.loc56: init %empty_tuple.type = call %bound_method.loc56_9.3(%sum.ref.loc56, %i.ref.loc56) -// CHECK:STDOUT: %Destroy.Op.bound.loc55_19.1: = bound_method %.loc55_19.6, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc55_19.1: init %empty_tuple.type = call %Destroy.Op.bound.loc55_19.1(%.loc55_19.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc55_19.1: = bound_method %.loc55_19.6, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc55_19.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc55_19.1(%.loc55_19.6) // CHECK:STDOUT: br !for.next.loc55 // CHECK:STDOUT: // CHECK:STDOUT: !for.done.loc55: -// CHECK:STDOUT: %Destroy.Op.bound.loc55_19.2: = bound_method %.loc55_19.6, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc55_19.2: init %empty_tuple.type = call %Destroy.Op.bound.loc55_19.2(%.loc55_19.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc55_19.3: = bound_method %var.loc55, constants.%Destroy.Op.1a2547.11 -// CHECK:STDOUT: %Destroy.Op.call.loc55_19.3: init %empty_tuple.type = call %Destroy.Op.bound.loc55_19.3(%var.loc55) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc55_19.2: = bound_method %.loc55_19.6, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc55_19.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc55_19.2(%.loc55_19.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc55_19.3: = bound_method %var.loc55, constants.%Destroy.WithSelf.Op.403171.10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc55_19.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc55_19.3(%var.loc55) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1347,14 +1347,14 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %R.patt.loc30_17.2 => constants.%R.patt // CHECK:STDOUT: %R.loc30_17.1 => constants.%R // CHECK:STDOUT: %R.as_type.loc30_61.1 => constants.%R.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.073 -// CHECK:STDOUT: %r.param_patt.loc30_59.2 => constants.%r.param_patt.d39 -// CHECK:STDOUT: %r.patt.loc30_59.2 => constants.%r.patt.5af +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.007 +// CHECK:STDOUT: %r.param_patt.loc30_59.2 => constants.%r.param_patt.737 +// CHECK:STDOUT: %r.patt.loc30_59.2 => constants.%r.patt.06b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestIterate(constants.%facet_value.8a3) { +// CHECK:STDOUT: specific @TestIterate(constants.%facet_value.5eb) { // CHECK:STDOUT: %R.patt.loc30_17.2 => constants.%R.patt -// CHECK:STDOUT: %R.loc30_17.1 => constants.%facet_value.8a3 +// CHECK:STDOUT: %R.loc30_17.1 => constants.%facet_value.5eb // CHECK:STDOUT: %R.as_type.loc30_61.1 => constants.%MutableRange // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e635 // CHECK:STDOUT: %r.param_patt.loc30_59.2 => constants.%r.param_patt.c79 @@ -1362,30 +1362,30 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc30 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.0b0 -// CHECK:STDOUT: %Iterate.facet.loc34_19.5 => constants.%Iterate.facet.fdf -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.5e7 -// CHECK:STDOUT: %.loc34_19.19 => constants.%.641 -// CHECK:STDOUT: %impl.elem2.loc34_19.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.45a -// CHECK:STDOUT: %specific_impl_fn.loc34_19.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.b38 -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.30f +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.589 +// CHECK:STDOUT: %Iterate.facet.loc34_19.5 => constants.%Iterate.facet.9b1 +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.6ac +// CHECK:STDOUT: %.loc34_19.19 => constants.%.03d +// CHECK:STDOUT: %impl.elem2.loc34_19.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.e2d +// CHECK:STDOUT: %specific_impl_fn.loc34_19.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.a90 +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.45a // CHECK:STDOUT: %as_type => constants.%tuple.type.508 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.c28 // CHECK:STDOUT: %ptr => constants.%ptr.45c -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.08a -// CHECK:STDOUT: %.loc34_19.20 => constants.%.d1b -// CHECK:STDOUT: %impl.elem3.loc34_19.2 => constants.%T.as_type.as.Iterate.impl.Next.a5b -// CHECK:STDOUT: %specific_impl_fn.loc34_19.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn.b5a -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c6c -// CHECK:STDOUT: %.loc34_19.21 => constants.%.0a4 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.10 -// CHECK:STDOUT: %impl.elem0.loc34_19.2 => constants.%Destroy.Op.1a2547.10 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.6 => constants.%Destroy.Op.1a2547.10 +// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.5b5 +// CHECK:STDOUT: %.loc34_19.20 => constants.%.cd1 +// CHECK:STDOUT: %impl.elem3.loc34_19.2 => constants.%T.as_type.as.Iterate.impl.Next.fd1 +// CHECK:STDOUT: %specific_impl_fn.loc34_19.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn.e2f +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.4bb +// CHECK:STDOUT: %.loc34_19.21 => constants.%.7a2 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.9 +// CHECK:STDOUT: %impl.elem0.loc34_19.2 => constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %specific_impl_fn.loc34_19.6 => constants.%Destroy.WithSelf.Op.403171.9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestIterate(constants.%facet_value.9af) { +// CHECK:STDOUT: specific @TestIterate(constants.%facet_value.cd8) { // CHECK:STDOUT: %R.patt.loc30_17.2 => constants.%R.patt -// CHECK:STDOUT: %R.loc30_17.1 => constants.%facet_value.9af +// CHECK:STDOUT: %R.loc30_17.1 => constants.%facet_value.cd8 // CHECK:STDOUT: %R.as_type.loc30_61.1 => constants.%ConstRange // CHECK:STDOUT: %pattern_type => constants.%pattern_type.0ba // CHECK:STDOUT: %r.param_patt.loc30_59.2 => constants.%r.param_patt.83e @@ -1393,25 +1393,25 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc30 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.bb2 -// CHECK:STDOUT: %Iterate.facet.loc34_19.5 => constants.%Iterate.facet.4c8 -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.9d7 -// CHECK:STDOUT: %.loc34_19.19 => constants.%.c93 -// CHECK:STDOUT: %impl.elem2.loc34_19.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.ab8 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.31a -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.e4c +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.978 +// CHECK:STDOUT: %Iterate.facet.loc34_19.5 => constants.%Iterate.facet.6bf +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.147 +// CHECK:STDOUT: %.loc34_19.19 => constants.%.e7e +// CHECK:STDOUT: %impl.elem2.loc34_19.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.f99 +// CHECK:STDOUT: %specific_impl_fn.loc34_19.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.574 +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.e08 // CHECK:STDOUT: %as_type => constants.%tuple.type.69f // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.8d5 // CHECK:STDOUT: %ptr => constants.%ptr.c5c -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.f73 -// CHECK:STDOUT: %.loc34_19.20 => constants.%.fe6 -// CHECK:STDOUT: %impl.elem3.loc34_19.2 => constants.%T.as_type.as.Iterate.impl.Next.a02 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn.480 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.7ec -// CHECK:STDOUT: %.loc34_19.21 => constants.%.0e7 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.11 -// CHECK:STDOUT: %impl.elem0.loc34_19.2 => constants.%Destroy.Op.1a2547.11 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.6 => constants.%Destroy.Op.1a2547.11 +// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.e99 +// CHECK:STDOUT: %.loc34_19.20 => constants.%.6b3 +// CHECK:STDOUT: %impl.elem3.loc34_19.2 => constants.%T.as_type.as.Iterate.impl.Next.231 +// CHECK:STDOUT: %specific_impl_fn.loc34_19.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn.faf +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.f64 +// CHECK:STDOUT: %.loc34_19.21 => constants.%.dc2 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.10 +// CHECK:STDOUT: %impl.elem0.loc34_19.2 => constants.%Destroy.WithSelf.Op.403171.10 +// CHECK:STDOUT: %specific_impl_fn.loc34_19.6 => constants.%Destroy.WithSelf.Op.403171.10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- methods_return_different_types.carbon @@ -1517,13 +1517,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Optional.Get.specific_fn.c49: = specific_function %Optional.Get.57f, @Optional.Get(%OptionalStorage.facet.c3f) [concrete] // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.type: type = fn_type @operator_PlusEqual__carbon_thunk [concrete] // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk: %operator_PlusEqual__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc44_33.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc44_33.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness.38d: = lookup_impl_witness %impl.elem1.697, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.dbc: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.697) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.dbc: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1.697) [symbolic] // CHECK:STDOUT: %.763: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.dbc, %impl.elem1.697 [symbolic] // CHECK:STDOUT: %impl.elem0.891: %.763 = impl_witness_access %Destroy.lookup_impl_witness.38d, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.b52: = specific_impl_function %impl.elem0.891, @Destroy.WithSelf.Op(%impl.elem1.697) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.b52: = specific_impl_function %impl.elem0.891, @Destroy.WithSelf.Op.1(%impl.elem1.697) [symbolic] // CHECK:STDOUT: %DiffMutableRange: type = class_type @DiffMutableRange [concrete] // CHECK:STDOUT: %pattern_type.611: type = pattern_type %DiffMutableRange [concrete] // CHECK:STDOUT: %DiffConstRange: type = class_type @DiffConstRange [concrete] @@ -1554,10 +1554,10 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %custom_witness.9bb15e.2: = custom_witness (%Sentinel.Op.1ca), @Destroy [concrete] // CHECK:STDOUT: %facet_value.0a7: %CppRange_where.type.d682d6.1 = facet_value %DiffMutableRange, (%custom_witness.e7a31c.1, %custom_witness.d0da43.1, %custom_witness.aa8, %custom_witness.9bb15e.1, %custom_witness.392, %custom_witness.1c9, %custom_witness.723, %custom_witness.9bb15e.2) [concrete] // CHECK:STDOUT: %tuple.type.b18: type = tuple_type (%Iterator.f25, %Sentinel.b4c) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.8: = custom_witness (%Destroy.Op.1a2547.8), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.2c1: %Destroy.type = facet_value %tuple.type.b18, (%custom_witness.df9cc1.8) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.8: type = fn_type @Destroy.WithSelf.Op.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.8: %Destroy.WithSelf.Op.type.ef016f.8 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.8: = custom_witness (%Destroy.WithSelf.Op.403171.8), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.ef9: %Destroy.type = facet_value %tuple.type.b18, (%custom_witness.6c4ec3.8) [concrete] // CHECK:STDOUT: %Iterate.impl_witness.747: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.0a7) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.096: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.0a7) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.136: %T.as_type.as.Iterate.impl.NewCursor.type.096 = struct_value () [concrete] @@ -1593,10 +1593,10 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %custom_witness.f7d4ff.2: = custom_witness (%Sentinel.Op.690), @Destroy [concrete] // CHECK:STDOUT: %facet_value.733: %CppRange_where.type.d682d6.1 = facet_value %DiffConstRange, (%custom_witness.e7a31c.1, %custom_witness.d0da43.1, %custom_witness.7b4, %custom_witness.f7d4ff.1, %custom_witness.0c0, %custom_witness.ffb, %custom_witness.a26, %custom_witness.f7d4ff.2) [concrete] // CHECK:STDOUT: %tuple.type.df5: type = tuple_type (%Iterator.a59, %Sentinel.b33) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.9: type = fn_type @Destroy.Op.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.9: %Destroy.Op.type.1d8f74.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.9: = custom_witness (%Destroy.Op.1a2547.9), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.1ed: %Destroy.type = facet_value %tuple.type.df5, (%custom_witness.df9cc1.9) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.9: type = fn_type @Destroy.WithSelf.Op.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.9: %Destroy.WithSelf.Op.type.ef016f.9 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.9: = custom_witness (%Destroy.WithSelf.Op.403171.9), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.71f: %Destroy.type = facet_value %tuple.type.df5, (%custom_witness.6c4ec3.9) [concrete] // CHECK:STDOUT: %Iterate.impl_witness.f7f: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.733) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.2bd: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.733) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.1a9: %T.as_type.as.Iterate.impl.NewCursor.type.2bd = struct_value () [concrete] @@ -1613,8 +1613,8 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %ptr.3ce: type = ptr_type %tuple.type.b18 [concrete] // CHECK:STDOUT: %.922: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.a94, %Iterate.facet.68a [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn.a81: = specific_function %T.as_type.as.Iterate.impl.Next.31b, @T.as_type.as.Iterate.impl.Next(%facet_value.0a7) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.188: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.2c1) [concrete] -// CHECK:STDOUT: %.082: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.188, %Destroy.facet.2c1 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.5f3: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.ef9) [concrete] +// CHECK:STDOUT: %.74d: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.5f3, %Destroy.facet.ef9 [concrete] // CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.185: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.608) [concrete] // CHECK:STDOUT: %Iterate.WithSelf.Next.type.f38: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.608) [concrete] // CHECK:STDOUT: %.f70: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.185, %Iterate.facet.608 [concrete] @@ -1622,8 +1622,8 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %ptr.310: type = ptr_type %tuple.type.df5 [concrete] // CHECK:STDOUT: %.802: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.f38, %Iterate.facet.608 [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn.2ac: = specific_function %T.as_type.as.Iterate.impl.Next.59a, @T.as_type.as.Iterate.impl.Next(%facet_value.733) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.a81: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.1ed) [concrete] -// CHECK:STDOUT: %.471: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.a81, %Destroy.facet.1ed [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.eb1: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.71f) [concrete] +// CHECK:STDOUT: %.236: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.eb1, %Destroy.facet.71f [concrete] // CHECK:STDOUT: %complete_type.bfe: = complete_type_witness %tuple.type.b18 [concrete] // CHECK:STDOUT: %complete_type.ad6: = complete_type_witness %tuple.type.df5 [concrete] // CHECK:STDOUT: } @@ -1681,11 +1681,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc44_33.21: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc44_33.5 [symbolic = %.loc44_33.21 (constants.%.f06)] // CHECK:STDOUT: %impl.elem3.loc44_33.2: @TestIterate.%.loc44_33.21 (%.f06) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc44_33.2 (constants.%impl.elem3.463)] // CHECK:STDOUT: %specific_impl_fn.loc44_33.5: = specific_impl_function %impl.elem3.loc44_33.2, @Iterate.WithSelf.Next(%Iterate.facet.loc44_33.5) [symbolic = %specific_impl_fn.loc44_33.5 (constants.%specific_impl_fn.dcf)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.dbc)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.dbc)] // CHECK:STDOUT: %.loc44_33.22: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc44_33.22 (constants.%.763)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.38d)] // CHECK:STDOUT: %impl.elem0.loc44_33.2: @TestIterate.%.loc44_33.22 (%.763) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc44_33.2 (constants.%impl.elem0.891)] -// CHECK:STDOUT: %specific_impl_fn.loc44_33.6: = specific_impl_function %impl.elem0.loc44_33.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc44_33.6 (constants.%specific_impl_fn.b52)] +// CHECK:STDOUT: %specific_impl_fn.loc44_33.6: = specific_impl_function %impl.elem0.loc44_33.2, @Destroy.WithSelf.Op.1(%impl.elem1) [symbolic = %specific_impl_fn.loc44_33.6 (constants.%specific_impl_fn.b52)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%r.param: ref @TestIterate.%R.as_type.loc40_79.1 (%R.as_type)) { // CHECK:STDOUT: !entry: @@ -1762,47 +1762,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref.loc44: %DiffValueType.cpp_destructor.type = name_ref Op, imports.%DiffValueType.cpp_destructor.decl [concrete = constants.%DiffValueType.cpp_destructor] // CHECK:STDOUT: %DiffValueType.cpp_destructor.bound.loc44: = bound_method %.loc44_33.16, %Op.ref.loc44 // CHECK:STDOUT: %DiffValueType.cpp_destructor.call.loc44: init %empty_tuple.type = call %DiffValueType.cpp_destructor.bound.loc44(%.loc44_33.16) -// CHECK:STDOUT: %Destroy.Op.bound.loc44_33.1: = bound_method %.loc44_33.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc44_33.1: init %empty_tuple.type = call %Destroy.Op.bound.loc44_33.1(%.loc44_33.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc44_33.1: = bound_method %.loc44_33.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc44_33.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc44_33.1(%.loc44_33.8) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc44_33.2: = bound_method %.loc44_33.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc44_33.2: init %empty_tuple.type = call %Destroy.Op.bound.loc44_33.2(%.loc44_33.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc44_33.2: = bound_method %.loc44_33.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc44_33.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc44_33.2(%.loc44_33.8) // CHECK:STDOUT: %impl.elem0.loc44_33.1: @TestIterate.%.loc44_33.22 (%.763) = impl_witness_access constants.%Destroy.lookup_impl_witness.38d, element0 [symbolic = %impl.elem0.loc44_33.2 (constants.%impl.elem0.891)] // CHECK:STDOUT: %bound_method.loc44_33.7: = bound_method %var, %impl.elem0.loc44_33.1 // CHECK:STDOUT: %.loc44_33.18: %Destroy.type = converted constants.%as_type.59f, constants.%impl.elem1.697 [symbolic = %impl.elem1 (constants.%impl.elem1.697)] // CHECK:STDOUT: %.loc44_33.19: %Destroy.type = converted constants.%as_type.59f, constants.%impl.elem1.697 [symbolic = %impl.elem1 (constants.%impl.elem1.697)] -// CHECK:STDOUT: %specific_impl_fn.loc44_33.3: = specific_impl_function %impl.elem0.loc44_33.1, @Destroy.WithSelf.Op(constants.%impl.elem1.697) [symbolic = %specific_impl_fn.loc44_33.6 (constants.%specific_impl_fn.b52)] +// CHECK:STDOUT: %specific_impl_fn.loc44_33.3: = specific_impl_function %impl.elem0.loc44_33.1, @Destroy.WithSelf.Op.1(constants.%impl.elem1.697) [symbolic = %specific_impl_fn.loc44_33.6 (constants.%specific_impl_fn.b52)] // CHECK:STDOUT: %bound_method.loc44_33.8: = bound_method %var, %specific_impl_fn.loc44_33.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc44_33.8(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc44_33.3: init %empty_tuple.type = call %bound_method.loc44_33.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_33.1(%self.param: ref %.a18) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc44_33.1(%self.param: ref %.a18) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_33.2(%self.param: ref %MaybeUnformed.923) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc44_33.2(%self.param: ref %MaybeUnformed.923) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_33.3(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc44_33.3(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_33.4(%self.param: ref %struct_type.value.has_value.3cf) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc44_33.4(%self.param: ref %struct_type.value.has_value.3cf) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_33.5(%self.param: ref %DefaultOptionalStorage.5e4) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc44_33.5(%self.param: ref %DefaultOptionalStorage.5e4) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_33.6(%self.param: ref %Optional.15a) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc44_33.6(%self.param: ref %Optional.15a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1880,15 +1880,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref.loc59: %DiffValueType.cpp_destructor.type = name_ref Op, imports.%DiffValueType.cpp_destructor.decl [concrete = constants.%DiffValueType.cpp_destructor] // CHECK:STDOUT: %DiffValueType.cpp_destructor.bound.loc59: = bound_method %.loc59_33.14, %Op.ref.loc59 // CHECK:STDOUT: %DiffValueType.cpp_destructor.call.loc59: init %empty_tuple.type = call %DiffValueType.cpp_destructor.bound.loc59(%.loc59_33.14) -// CHECK:STDOUT: %Destroy.Op.bound.loc59_33.1: = bound_method %.loc59_33.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc59_33.1: init %empty_tuple.type = call %Destroy.Op.bound.loc59_33.1(%.loc59_33.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc59_33.1: = bound_method %.loc59_33.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc59_33.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc59_33.1(%.loc59_33.6) // CHECK:STDOUT: br !for.next.loc59 // CHECK:STDOUT: // CHECK:STDOUT: !for.done.loc59: -// CHECK:STDOUT: %Destroy.Op.bound.loc59_33.2: = bound_method %.loc59_33.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc59_33.2: init %empty_tuple.type = call %Destroy.Op.bound.loc59_33.2(%.loc59_33.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc59_33.3: = bound_method %var.loc59, constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %Destroy.Op.call.loc59_33.3: init %empty_tuple.type = call %Destroy.Op.bound.loc59_33.3(%var.loc59) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc59_33.2: = bound_method %.loc59_33.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc59_33.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc59_33.2(%.loc59_33.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc59_33.3: = bound_method %var.loc59, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc59_33.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc59_33.3(%var.loc59) // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %i.patt.loc63: %pattern_type.149 = value_binding_pattern i [concrete = constants.%i.patt] // CHECK:STDOUT: } @@ -1957,15 +1957,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref.loc63: %DiffValueType.cpp_destructor.type = name_ref Op, imports.%DiffValueType.cpp_destructor.decl [concrete = constants.%DiffValueType.cpp_destructor] // CHECK:STDOUT: %DiffValueType.cpp_destructor.bound.loc63: = bound_method %.loc63_33.14, %Op.ref.loc63 // CHECK:STDOUT: %DiffValueType.cpp_destructor.call.loc63: init %empty_tuple.type = call %DiffValueType.cpp_destructor.bound.loc63(%.loc63_33.14) -// CHECK:STDOUT: %Destroy.Op.bound.loc63_33.1: = bound_method %.loc63_33.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc63_33.1: init %empty_tuple.type = call %Destroy.Op.bound.loc63_33.1(%.loc63_33.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc63_33.1: = bound_method %.loc63_33.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc63_33.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc63_33.1(%.loc63_33.6) // CHECK:STDOUT: br !for.next.loc63 // CHECK:STDOUT: // CHECK:STDOUT: !for.done.loc63: -// CHECK:STDOUT: %Destroy.Op.bound.loc63_33.2: = bound_method %.loc63_33.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc63_33.2: init %empty_tuple.type = call %Destroy.Op.bound.loc63_33.2(%.loc63_33.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc63_33.3: = bound_method %var.loc63, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc63_33.3: init %empty_tuple.type = call %Destroy.Op.bound.loc63_33.3(%var.loc63) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc63_33.2: = bound_method %.loc63_33.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc63_33.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc63_33.2(%.loc63_33.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc63_33.3: = bound_method %var.loc63, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc63_33.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc63_33.3(%var.loc63) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1994,7 +1994,7 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc44_33.20 => constants.%.cbf // CHECK:STDOUT: %impl.elem2.loc44_33.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.136 // CHECK:STDOUT: %specific_impl_fn.loc44_33.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.7b5 -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.2c1 +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.ef9 // CHECK:STDOUT: %as_type => constants.%tuple.type.b18 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.bfe // CHECK:STDOUT: %ptr => constants.%ptr.3ce @@ -2002,11 +2002,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc44_33.21 => constants.%.922 // CHECK:STDOUT: %impl.elem3.loc44_33.2 => constants.%T.as_type.as.Iterate.impl.Next.31b // CHECK:STDOUT: %specific_impl_fn.loc44_33.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn.a81 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.188 -// CHECK:STDOUT: %.loc44_33.22 => constants.%.082 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.8 -// CHECK:STDOUT: %impl.elem0.loc44_33.2 => constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %specific_impl_fn.loc44_33.6 => constants.%Destroy.Op.1a2547.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.5f3 +// CHECK:STDOUT: %.loc44_33.22 => constants.%.74d +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.8 +// CHECK:STDOUT: %impl.elem0.loc44_33.2 => constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %specific_impl_fn.loc44_33.6 => constants.%Destroy.WithSelf.Op.403171.8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TestIterate(constants.%facet_value.1e4) { @@ -2025,7 +2025,7 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc44_33.20 => constants.%.f70 // CHECK:STDOUT: %impl.elem2.loc44_33.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.1a9 // CHECK:STDOUT: %specific_impl_fn.loc44_33.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn.f9d -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.1ed +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.71f // CHECK:STDOUT: %as_type => constants.%tuple.type.df5 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.ad6 // CHECK:STDOUT: %ptr => constants.%ptr.310 @@ -2033,11 +2033,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc44_33.21 => constants.%.802 // CHECK:STDOUT: %impl.elem3.loc44_33.2 => constants.%T.as_type.as.Iterate.impl.Next.59a // CHECK:STDOUT: %specific_impl_fn.loc44_33.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn.2ac -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a81 -// CHECK:STDOUT: %.loc44_33.22 => constants.%.471 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.9 -// CHECK:STDOUT: %impl.elem0.loc44_33.2 => constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %specific_impl_fn.loc44_33.6 => constants.%Destroy.Op.1a2547.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.eb1 +// CHECK:STDOUT: %.loc44_33.22 => constants.%.236 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.9 +// CHECK:STDOUT: %impl.elem0.loc44_33.2 => constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %specific_impl_fn.loc44_33.6 => constants.%Destroy.WithSelf.Op.403171.9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- method_overloads.carbon @@ -2138,13 +2138,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %struct_type.value.has_value.3e8: type = struct_type {.value: %MaybeUnformed.59c, .has_value: bool} [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn.bf1: = specific_function %Optional.HasValue.91a, @Optional.HasValue(%OptionalStorage.facet.496) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn.548: = specific_function %Optional.Get.2d3, @Optional.Get(%OptionalStorage.facet.496) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc27_37.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc27_37.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness.d2d: = lookup_impl_witness %impl.elem1.424, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.9de: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.424) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.9de: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1.424) [symbolic] // CHECK:STDOUT: %.696: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.9de, %impl.elem1.424 [symbolic] // CHECK:STDOUT: %impl.elem0.18a: %.696 = impl_witness_access %Destroy.lookup_impl_witness.d2d, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.b04: = specific_impl_function %impl.elem0.18a, @Destroy.WithSelf.Op(%impl.elem1.424) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.b04: = specific_impl_function %impl.elem0.18a, @Destroy.WithSelf.Op.1(%impl.elem1.424) [symbolic] // CHECK:STDOUT: %Range: type = class_type @Range [concrete] // CHECK:STDOUT: %pattern_type.23f: type = pattern_type %Range [concrete] // CHECK:STDOUT: %Iterator: type = class_type @Iterator.1 [concrete] @@ -2169,10 +2169,10 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %custom_witness.617: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] // CHECK:STDOUT: %facet_value.cbe: %CppRange_where.type.d682d6.1 = facet_value %Range, (%custom_witness.e7a31c.1, %custom_witness.d0da43.1, %custom_witness.090, %custom_witness.f4a, %custom_witness.6bd, %custom_witness.716, %custom_witness.617) [concrete] // CHECK:STDOUT: %tuple.type.9ef: type = tuple_type (%Iterator, %Iterator) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.8: = custom_witness (%Destroy.Op.1a2547.8), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.15b: %Destroy.type = facet_value %tuple.type.9ef, (%custom_witness.df9cc1.8) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.8: type = fn_type @Destroy.WithSelf.Op.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.8: %Destroy.WithSelf.Op.type.ef016f.8 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.8: = custom_witness (%Destroy.WithSelf.Op.403171.8), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.6f5: %Destroy.type = facet_value %tuple.type.9ef, (%custom_witness.6c4ec3.8) [concrete] // CHECK:STDOUT: %Iterate.impl_witness.175: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.cbe) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.72c: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.cbe) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.036: %T.as_type.as.Iterate.impl.NewCursor.type.72c = struct_value () [concrete] @@ -2189,8 +2189,8 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %ptr.b18: type = ptr_type %tuple.type.9ef [concrete] // CHECK:STDOUT: %.79c: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.1f9, %Iterate.facet.cc4 [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %T.as_type.as.Iterate.impl.Next.751, @T.as_type.as.Iterate.impl.Next(%facet_value.cbe) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.fd5: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.15b) [concrete] -// CHECK:STDOUT: %.fb6: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.fd5, %Destroy.facet.15b [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.26c: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.6f5) [concrete] +// CHECK:STDOUT: %.149: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.26c, %Destroy.facet.6f5 [concrete] // CHECK:STDOUT: %complete_type.e35: = complete_type_witness %tuple.type.9ef [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2240,11 +2240,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc27_37.21: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc27_37.5 [symbolic = %.loc27_37.21 (constants.%.474)] // CHECK:STDOUT: %impl.elem3.loc27_37.2: @TestIterate.%.loc27_37.21 (%.474) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc27_37.2 (constants.%impl.elem3.316)] // CHECK:STDOUT: %specific_impl_fn.loc27_37.5: = specific_impl_function %impl.elem3.loc27_37.2, @Iterate.WithSelf.Next(%Iterate.facet.loc27_37.5) [symbolic = %specific_impl_fn.loc27_37.5 (constants.%specific_impl_fn.754)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.9de)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.9de)] // CHECK:STDOUT: %.loc27_37.22: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc27_37.22 (constants.%.696)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.d2d)] // CHECK:STDOUT: %impl.elem0.loc27_37.2: @TestIterate.%.loc27_37.22 (%.696) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc27_37.2 (constants.%impl.elem0.18a)] -// CHECK:STDOUT: %specific_impl_fn.loc27_37.6: = specific_impl_function %impl.elem0.loc27_37.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc27_37.6 (constants.%specific_impl_fn.b04)] +// CHECK:STDOUT: %specific_impl_fn.loc27_37.6: = specific_impl_function %impl.elem0.loc27_37.2, @Destroy.WithSelf.Op.1(%impl.elem1) [symbolic = %specific_impl_fn.loc27_37.6 (constants.%specific_impl_fn.b04)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%r.param: ref @TestIterate.%R.as_type.loc25_83.1 (%R.as_type)) { // CHECK:STDOUT: !entry: @@ -2313,47 +2313,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref: %OverloadValueType.cpp_destructor.type = name_ref Op, imports.%OverloadValueType.cpp_destructor.decl [concrete = constants.%OverloadValueType.cpp_destructor] // CHECK:STDOUT: %OverloadValueType.cpp_destructor.bound: = bound_method %.loc27_37.16, %Op.ref // CHECK:STDOUT: %OverloadValueType.cpp_destructor.call: init %empty_tuple.type = call %OverloadValueType.cpp_destructor.bound(%.loc27_37.16) -// CHECK:STDOUT: %Destroy.Op.bound.loc27_37.1: = bound_method %.loc27_37.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc27_37.1: init %empty_tuple.type = call %Destroy.Op.bound.loc27_37.1(%.loc27_37.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc27_37.1: = bound_method %.loc27_37.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc27_37.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc27_37.1(%.loc27_37.8) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc27_37.2: = bound_method %.loc27_37.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc27_37.2: init %empty_tuple.type = call %Destroy.Op.bound.loc27_37.2(%.loc27_37.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc27_37.2: = bound_method %.loc27_37.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc27_37.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc27_37.2(%.loc27_37.8) // CHECK:STDOUT: %impl.elem0.loc27_37.1: @TestIterate.%.loc27_37.22 (%.696) = impl_witness_access constants.%Destroy.lookup_impl_witness.d2d, element0 [symbolic = %impl.elem0.loc27_37.2 (constants.%impl.elem0.18a)] // CHECK:STDOUT: %bound_method.loc27_37.7: = bound_method %var, %impl.elem0.loc27_37.1 // CHECK:STDOUT: %.loc27_37.18: %Destroy.type = converted constants.%as_type.810, constants.%impl.elem1.424 [symbolic = %impl.elem1 (constants.%impl.elem1.424)] // CHECK:STDOUT: %.loc27_37.19: %Destroy.type = converted constants.%as_type.810, constants.%impl.elem1.424 [symbolic = %impl.elem1 (constants.%impl.elem1.424)] -// CHECK:STDOUT: %specific_impl_fn.loc27_37.3: = specific_impl_function %impl.elem0.loc27_37.1, @Destroy.WithSelf.Op(constants.%impl.elem1.424) [symbolic = %specific_impl_fn.loc27_37.6 (constants.%specific_impl_fn.b04)] +// CHECK:STDOUT: %specific_impl_fn.loc27_37.3: = specific_impl_function %impl.elem0.loc27_37.1, @Destroy.WithSelf.Op.1(constants.%impl.elem1.424) [symbolic = %specific_impl_fn.loc27_37.6 (constants.%specific_impl_fn.b04)] // CHECK:STDOUT: %bound_method.loc27_37.8: = bound_method %var, %specific_impl_fn.loc27_37.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc27_37.8(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc27_37.3: init %empty_tuple.type = call %bound_method.loc27_37.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27_37.1(%self.param: ref %.8a2) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc27_37.1(%self.param: ref %.8a2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27_37.2(%self.param: ref %MaybeUnformed.59c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc27_37.2(%self.param: ref %MaybeUnformed.59c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27_37.3(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc27_37.3(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27_37.4(%self.param: ref %struct_type.value.has_value.3e8) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc27_37.4(%self.param: ref %struct_type.value.has_value.3e8) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27_37.5(%self.param: ref %DefaultOptionalStorage.799) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc27_37.5(%self.param: ref %DefaultOptionalStorage.799) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27_37.6(%self.param: ref %Optional.4e9) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc27_37.6(%self.param: ref %Optional.4e9) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2423,15 +2423,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref: %OverloadValueType.cpp_destructor.type = name_ref Op, imports.%OverloadValueType.cpp_destructor.decl [concrete = constants.%OverloadValueType.cpp_destructor] // CHECK:STDOUT: %OverloadValueType.cpp_destructor.bound: = bound_method %.loc37_37.14, %Op.ref // CHECK:STDOUT: %OverloadValueType.cpp_destructor.call: init %empty_tuple.type = call %OverloadValueType.cpp_destructor.bound(%.loc37_37.14) -// CHECK:STDOUT: %Destroy.Op.bound.loc37_37.1: = bound_method %.loc37_37.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc37_37.1: init %empty_tuple.type = call %Destroy.Op.bound.loc37_37.1(%.loc37_37.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc37_37.1: = bound_method %.loc37_37.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc37_37.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc37_37.1(%.loc37_37.6) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc37_37.2: = bound_method %.loc37_37.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc37_37.2: init %empty_tuple.type = call %Destroy.Op.bound.loc37_37.2(%.loc37_37.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc37_37.3: = bound_method %var, constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %Destroy.Op.call.loc37_37.3: init %empty_tuple.type = call %Destroy.Op.bound.loc37_37.3(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc37_37.2: = bound_method %.loc37_37.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc37_37.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc37_37.2(%.loc37_37.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc37_37.3: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc37_37.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc37_37.3(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2460,7 +2460,7 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc27_37.20 => constants.%.687 // CHECK:STDOUT: %impl.elem2.loc27_37.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.036 // CHECK:STDOUT: %specific_impl_fn.loc27_37.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.15b +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.6f5 // CHECK:STDOUT: %as_type => constants.%tuple.type.9ef // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.e35 // CHECK:STDOUT: %ptr => constants.%ptr.b18 @@ -2468,11 +2468,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc27_37.21 => constants.%.79c // CHECK:STDOUT: %impl.elem3.loc27_37.2 => constants.%T.as_type.as.Iterate.impl.Next.751 // CHECK:STDOUT: %specific_impl_fn.loc27_37.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.fd5 -// CHECK:STDOUT: %.loc27_37.22 => constants.%.fb6 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.8 -// CHECK:STDOUT: %impl.elem0.loc27_37.2 => constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %specific_impl_fn.loc27_37.6 => constants.%Destroy.Op.1a2547.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.26c +// CHECK:STDOUT: %.loc27_37.22 => constants.%.149 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.8 +// CHECK:STDOUT: %impl.elem0.loc27_37.2 => constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %specific_impl_fn.loc27_37.6 => constants.%Destroy.WithSelf.Op.403171.8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adl_return_same_types.carbon @@ -2526,51 +2526,51 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %f64.dc1 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc20_53.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.3: = custom_witness (%Destroy.Op.1a2547.3), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc20_53.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.3: = custom_witness (%Destroy.WithSelf.Op.403171.3), @Destroy [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N.fe9) [symbolic] // CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.0d6: = impl_witness imports.%Copy.impl_witness_table.8dd, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %facet_value.20d: %facet_type.f48 = facet_value %f64.dc1, (%custom_witness.df9cc1.3, %Copy.impl_witness.0d6) [concrete] +// CHECK:STDOUT: %facet_value.46e: %facet_type.f48 = facet_value %f64.dc1, (%custom_witness.6c4ec3.3, %Copy.impl_witness.0d6) [concrete] // CHECK:STDOUT: %Iterate.lookup_impl_witness.1d8: = lookup_impl_witness %.Self.500, @Iterate [symbolic_self] // CHECK:STDOUT: %impl.elem0.294: %facet_type.f48 = impl_witness_access %Iterate.lookup_impl_witness.1d8, element0 [symbolic_self] -// CHECK:STDOUT: %Iterate_where.type.e6d: type = facet_type <@Iterate where %impl.elem0.294 = %facet_value.20d> [concrete] -// CHECK:STDOUT: %pattern_type.dc5: type = pattern_type %Iterate_where.type.e6d [concrete] -// CHECK:STDOUT: %R.patt: %pattern_type.dc5 = symbolic_binding_pattern R, 0 [symbolic] -// CHECK:STDOUT: %R: %Iterate_where.type.e6d = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %Iterate_where.type.13a: type = facet_type <@Iterate where %impl.elem0.294 = %facet_value.46e> [concrete] +// CHECK:STDOUT: %pattern_type.a31: type = pattern_type %Iterate_where.type.13a [concrete] +// CHECK:STDOUT: %R.patt: %pattern_type.a31 = symbolic_binding_pattern R, 0 [symbolic] +// CHECK:STDOUT: %R: %Iterate_where.type.13a = symbolic_binding R, 0 [symbolic] // CHECK:STDOUT: %R.as_type: type = facet_access_type %R [symbolic] -// CHECK:STDOUT: %pattern_type.d35: type = pattern_type %R.as_type [symbolic] -// CHECK:STDOUT: %r.param_patt.bc2: %pattern_type.d35 = value_param_pattern [symbolic] -// CHECK:STDOUT: %r.patt.47e: %pattern_type.d35 = wrapper_binding_pattern r, %r.param_patt.bc2 [symbolic] +// CHECK:STDOUT: %pattern_type.15f: type = pattern_type %R.as_type [symbolic] +// CHECK:STDOUT: %r.param_patt.f80: %pattern_type.15f = value_param_pattern [symbolic] +// CHECK:STDOUT: %r.patt.fdd: %pattern_type.15f = wrapper_binding_pattern r, %r.param_patt.f80 [symbolic] // CHECK:STDOUT: %i.patt: %pattern_type.fb7 = value_binding_pattern i [concrete] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.757: = lookup_impl_witness %R, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet.737: %Iterate.type = facet_value %R.as_type, (%Iterate.lookup_impl_witness.757) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.346: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.737) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.f8a: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.737) [symbolic] -// CHECK:STDOUT: %.41f: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.346, %Iterate.facet.737 [symbolic] -// CHECK:STDOUT: %impl.elem2.804: %.41f = impl_witness_access %Iterate.lookup_impl_witness.757, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.e8e: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.757, element1 [symbolic] -// CHECK:STDOUT: %as_type.b98: type = facet_access_type %impl.elem1.e8e [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a60: = specific_impl_function %impl.elem2.804, @Iterate.WithSelf.NewCursor(%Iterate.facet.737) [symbolic] -// CHECK:STDOUT: %ptr.f03: type = ptr_type %as_type.b98 [symbolic] -// CHECK:STDOUT: %.ecb: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.f8a, %Iterate.facet.737 [symbolic] -// CHECK:STDOUT: %impl.elem3.d3c: %.ecb = impl_witness_access %Iterate.lookup_impl_witness.757, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.8c0: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.20d) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.872: = impl_witness imports.%OptionalStorage.impl_witness_table.460, @T.as_type.as.OptionalStorage.impl(%facet_value.20d) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.4d5: %OptionalStorage.type = facet_value %f64.dc1, (%OptionalStorage.impl_witness.872) [concrete] -// CHECK:STDOUT: %Optional.e07: type = class_type @Optional, @Optional(%OptionalStorage.facet.4d5) [concrete] -// CHECK:STDOUT: %specific_impl_fn.b90: = specific_impl_function %impl.elem3.d3c, @Iterate.WithSelf.Next(%Iterate.facet.737) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.43a: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.4d5) [concrete] -// CHECK:STDOUT: %Optional.HasValue.1c0: %Optional.HasValue.type.43a = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.a84: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.4d5) [concrete] -// CHECK:STDOUT: %Optional.Get.4e0: %Optional.Get.type.a84 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.339: %Destroy.type = facet_value %f64.dc1, (%custom_witness.df9cc1.3) [concrete] -// CHECK:STDOUT: %MaybeUnformed.b7e: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.339) [concrete] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.0cb: = lookup_impl_witness %R, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet.a3a: %Iterate.type = facet_value %R.as_type, (%Iterate.lookup_impl_witness.0cb) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.228: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.a3a) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.431: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.a3a) [symbolic] +// CHECK:STDOUT: %.bf4: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.228, %Iterate.facet.a3a [symbolic] +// CHECK:STDOUT: %impl.elem2.1a5: %.bf4 = impl_witness_access %Iterate.lookup_impl_witness.0cb, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.abd: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.0cb, element1 [symbolic] +// CHECK:STDOUT: %as_type.033: type = facet_access_type %impl.elem1.abd [symbolic] +// CHECK:STDOUT: %specific_impl_fn.40d: = specific_impl_function %impl.elem2.1a5, @Iterate.WithSelf.NewCursor(%Iterate.facet.a3a) [symbolic] +// CHECK:STDOUT: %ptr.e53: type = ptr_type %as_type.033 [symbolic] +// CHECK:STDOUT: %.b72: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.431, %Iterate.facet.a3a [symbolic] +// CHECK:STDOUT: %impl.elem3.eef: %.b72 = impl_witness_access %Iterate.lookup_impl_witness.0cb, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.a3f: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.46e) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.366: = impl_witness imports.%OptionalStorage.impl_witness_table.460, @T.as_type.as.OptionalStorage.impl(%facet_value.46e) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.1e4: %OptionalStorage.type = facet_value %f64.dc1, (%OptionalStorage.impl_witness.366) [concrete] +// CHECK:STDOUT: %Optional.72d: type = class_type @Optional, @Optional(%OptionalStorage.facet.1e4) [concrete] +// CHECK:STDOUT: %specific_impl_fn.e16: = specific_impl_function %impl.elem3.eef, @Iterate.WithSelf.Next(%Iterate.facet.a3a) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.7a6: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.1e4) [concrete] +// CHECK:STDOUT: %Optional.HasValue.afd: %Optional.HasValue.type.7a6 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.65e: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.1e4) [concrete] +// CHECK:STDOUT: %Optional.Get.ef5: %Optional.Get.type.65e = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.facet.d8e: %Destroy.type = facet_value %f64.dc1, (%custom_witness.6c4ec3.3) [concrete] +// CHECK:STDOUT: %MaybeUnformed.5b0: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.d8e) [concrete] // CHECK:STDOUT: %.cc0: type = maybe_unformed_type %f64.dc1 [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.ad9: type = struct_type {.value: %MaybeUnformed.b7e, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn.0a6: = specific_function %Optional.HasValue.1c0, @Optional.HasValue(%OptionalStorage.facet.4d5) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn.3a1: = specific_function %Optional.Get.4e0, @Optional.Get(%OptionalStorage.facet.4d5) [concrete] +// CHECK:STDOUT: %struct_type.value.has_value.a24: type = struct_type {.value: %MaybeUnformed.5b0, .has_value: bool} [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn.cd8: = specific_function %Optional.HasValue.afd, @Optional.HasValue(%OptionalStorage.facet.1e4) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn.1e8: = specific_function %Optional.Get.ef5, @Optional.Get(%OptionalStorage.facet.1e4) [concrete] // CHECK:STDOUT: %AddAssignWith.type.ff9: type = facet_type <@AddAssignWith, @AddAssignWith(%f64.dc1)> [concrete] // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.type.fdd: type = fn_type @Float.as.AddAssignWith.impl.Op, @Float.as.AddAssignWith.impl(%N.fe9) [symbolic] // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.430: %Float.as.AddAssignWith.impl.Op.type.fdd = struct_value () [symbolic] @@ -2581,13 +2581,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.d04: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%f64.dc1, %AddAssignWith.facet) [concrete] // CHECK:STDOUT: %.918: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.d04, %AddAssignWith.facet [concrete] // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Float.as.AddAssignWith.impl.Op.ac1, @Float.as.AddAssignWith.impl.Op(%int_64) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.9: type = fn_type @Destroy.Op.loc24_19.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.9: %Destroy.Op.type.1d8f74.9 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.02f: = lookup_impl_witness %impl.elem1.e8e, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.f26: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.e8e) [symbolic] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.f26, %impl.elem1.e8e [symbolic] -// CHECK:STDOUT: %impl.elem0.54b: %.f38 = impl_witness_access %Destroy.lookup_impl_witness.02f, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.b70: = specific_impl_function %impl.elem0.54b, @Destroy.WithSelf.Op(%impl.elem1.e8e) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.9: type = fn_type @Destroy.WithSelf.Op.loc24_19.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.9: %Destroy.WithSelf.Op.type.ef016f.9 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.303: = lookup_impl_witness %impl.elem1.abd, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2e9: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1.abd) [symbolic] +// CHECK:STDOUT: %.fe0: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.2e9, %impl.elem1.abd [symbolic] +// CHECK:STDOUT: %impl.elem0.15f: %.fe0 = impl_witness_access %Destroy.lookup_impl_witness.303, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2a1: = specific_impl_function %impl.elem0.15f, @Destroy.WithSelf.Op.1(%impl.elem1.abd) [symbolic] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] // CHECK:STDOUT: %pattern_type.025: type = pattern_type %ConstRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -2612,30 +2612,30 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %NotEqual.type: type = fn_type @NotEqual [concrete] // CHECK:STDOUT: %NotEqual: %NotEqual.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.821: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] -// CHECK:STDOUT: %facet_value.bbe: %CppRange_where.type.d682d6.1 = facet_value %ConstRange, (%custom_witness.df9cc1.3, %Copy.impl_witness.0d6, %custom_witness.5d5, %custom_witness.213, %custom_witness.994, %custom_witness.393, %custom_witness.821) [concrete] +// CHECK:STDOUT: %facet_value.fd3: %CppRange_where.type.d682d6.1 = facet_value %ConstRange, (%custom_witness.6c4ec3.3, %Copy.impl_witness.0d6, %custom_witness.5d5, %custom_witness.213, %custom_witness.994, %custom_witness.393, %custom_witness.821) [concrete] // CHECK:STDOUT: %tuple.type.005: type = tuple_type (%Iterator, %Iterator) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.10: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.10: %Destroy.Op.type.1d8f74.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.10: = custom_witness (%Destroy.Op.1a2547.10), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.40b: %Destroy.type = facet_value %tuple.type.005, (%custom_witness.df9cc1.10) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.526: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.bbe) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.fa7: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.bbe) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.5bc: %T.as_type.as.Iterate.impl.NewCursor.type.fa7 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.type.9a0: type = fn_type @T.as_type.as.Iterate.impl.Next, @T.as_type.as.Iterate.impl(%facet_value.bbe) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.a4d: %T.as_type.as.Iterate.impl.Next.type.9a0 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.212: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.526) [concrete] -// CHECK:STDOUT: %facet_value.eb1: %Iterate_where.type.e6d = facet_value %ConstRange, (%Iterate.impl_witness.526) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.10: type = fn_type @Destroy.WithSelf.Op.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.10: %Destroy.WithSelf.Op.type.ef016f.10 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.10: = custom_witness (%Destroy.WithSelf.Op.403171.10), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.16ee: %Destroy.type = facet_value %tuple.type.005, (%custom_witness.6c4ec3.10) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.e1c: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.fd3) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.e0d: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.fd3) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.89a: %T.as_type.as.Iterate.impl.NewCursor.type.e0d = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.type.4d9: type = fn_type @T.as_type.as.Iterate.impl.Next, @T.as_type.as.Iterate.impl(%facet_value.fd3) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.ac9: %T.as_type.as.Iterate.impl.Next.type.4d9 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.b4e: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.e1c) [concrete] +// CHECK:STDOUT: %facet_value.d3b: %Iterate_where.type.13a = facet_value %ConstRange, (%Iterate.impl_witness.e1c) [concrete] // CHECK:STDOUT: %r.param_patt.a73: %pattern_type.025 = value_param_pattern [concrete] // CHECK:STDOUT: %r.patt.0b5: %pattern_type.025 = wrapper_binding_pattern r, %r.param_patt.a73 [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.8e0: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.212) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.2d3: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.212) [concrete] -// CHECK:STDOUT: %.835: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.8e0, %Iterate.facet.212 [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %T.as_type.as.Iterate.impl.NewCursor.5bc, @T.as_type.as.Iterate.impl.NewCursor(%facet_value.bbe) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.408: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.b4e) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.01a: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.b4e) [concrete] +// CHECK:STDOUT: %.608: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.408, %Iterate.facet.b4e [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %T.as_type.as.Iterate.impl.NewCursor.89a, @T.as_type.as.Iterate.impl.NewCursor(%facet_value.fd3) [concrete] // CHECK:STDOUT: %ptr.d1a: type = ptr_type %tuple.type.005 [concrete] -// CHECK:STDOUT: %.7d6: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.2d3, %Iterate.facet.212 [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %T.as_type.as.Iterate.impl.Next.a4d, @T.as_type.as.Iterate.impl.Next(%facet_value.bbe) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.117: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.40b) [concrete] -// CHECK:STDOUT: %.5a4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.117, %Destroy.facet.40b [concrete] +// CHECK:STDOUT: %.ced: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.01a, %Iterate.facet.b4e [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %T.as_type.as.Iterate.impl.Next.ac9, @T.as_type.as.Iterate.impl.Next(%facet_value.fd3) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e14: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.16ee) [concrete] +// CHECK:STDOUT: %.3d8: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e14, %Destroy.facet.16ee [concrete] // CHECK:STDOUT: %complete_type.320: = complete_type_witness %tuple.type.005 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2660,28 +2660,28 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %AddAssignWith.impl_witness_table = impl_witness_table (%Core.import_ref.cb3), @Float.as.AddAssignWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TestIterate(%R.loc20_17.2: %Iterate_where.type.e6d) { +// CHECK:STDOUT: generic fn @TestIterate(%R.loc20_17.2: %Iterate_where.type.13a) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc20_17.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.757)] -// CHECK:STDOUT: %Iterate.facet.loc24_19.5: %Iterate.type = facet_value %R.as_type.loc20_61.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.loc24_19.5) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.346)] -// CHECK:STDOUT: %.loc24_19.19: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet.loc24_19.5 [symbolic = %.loc24_19.19 (constants.%.41f)] -// CHECK:STDOUT: %impl.elem2.loc24_19.2: @TestIterate.%.loc24_19.19 (%.41f) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc24_19.2 (constants.%impl.elem2.804)] -// CHECK:STDOUT: %specific_impl_fn.loc24_19.4: = specific_impl_function %impl.elem2.loc24_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet.loc24_19.5) [symbolic = %specific_impl_fn.loc24_19.4 (constants.%specific_impl_fn.a60)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc20_17.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.0cb)] +// CHECK:STDOUT: %Iterate.facet.loc24_19.5: %Iterate.type = facet_value %R.as_type.loc20_61.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.loc24_19.5) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.228)] +// CHECK:STDOUT: %.loc24_19.19: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet.loc24_19.5 [symbolic = %.loc24_19.19 (constants.%.bf4)] +// CHECK:STDOUT: %impl.elem2.loc24_19.2: @TestIterate.%.loc24_19.19 (%.bf4) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc24_19.2 (constants.%impl.elem2.1a5)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.4: = specific_impl_function %impl.elem2.loc24_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet.loc24_19.5) [symbolic = %specific_impl_fn.loc24_19.4 (constants.%specific_impl_fn.40d)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.f03)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.loc24_19.5) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.f8a)] -// CHECK:STDOUT: %.loc24_19.20: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc24_19.5 [symbolic = %.loc24_19.20 (constants.%.ecb)] -// CHECK:STDOUT: %impl.elem3.loc24_19.2: @TestIterate.%.loc24_19.20 (%.ecb) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc24_19.2 (constants.%impl.elem3.d3c)] -// CHECK:STDOUT: %specific_impl_fn.loc24_19.5: = specific_impl_function %impl.elem3.loc24_19.2, @Iterate.WithSelf.Next(%Iterate.facet.loc24_19.5) [symbolic = %specific_impl_fn.loc24_19.5 (constants.%specific_impl_fn.b90)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.f26)] -// CHECK:STDOUT: %.loc24_19.21: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc24_19.21 (constants.%.f38)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.02f)] -// CHECK:STDOUT: %impl.elem0.loc24_19.2: @TestIterate.%.loc24_19.21 (%.f38) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc24_19.2 (constants.%impl.elem0.54b)] -// CHECK:STDOUT: %specific_impl_fn.loc24_19.6: = specific_impl_function %impl.elem0.loc24_19.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc24_19.6 (constants.%specific_impl_fn.b70)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.e53)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.loc24_19.5) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.431)] +// CHECK:STDOUT: %.loc24_19.20: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc24_19.5 [symbolic = %.loc24_19.20 (constants.%.b72)] +// CHECK:STDOUT: %impl.elem3.loc24_19.2: @TestIterate.%.loc24_19.20 (%.b72) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc24_19.2 (constants.%impl.elem3.eef)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.5: = specific_impl_function %impl.elem3.loc24_19.2, @Iterate.WithSelf.Next(%Iterate.facet.loc24_19.5) [symbolic = %specific_impl_fn.loc24_19.5 (constants.%specific_impl_fn.e16)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.2e9)] +// CHECK:STDOUT: %.loc24_19.21: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc24_19.21 (constants.%.fe0)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.303)] +// CHECK:STDOUT: %impl.elem0.loc24_19.2: @TestIterate.%.loc24_19.21 (%.fe0) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc24_19.2 (constants.%impl.elem0.15f)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.6: = specific_impl_function %impl.elem0.loc24_19.2, @Destroy.WithSelf.Op.1(%impl.elem1) [symbolic = %specific_impl_fn.loc24_19.6 (constants.%specific_impl_fn.2a1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%r.param: @TestIterate.%R.as_type.loc20_61.1 (%R.as_type)) { // CHECK:STDOUT: !entry: @@ -2690,52 +2690,52 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.patt: %pattern_type.fb7 = value_binding_pattern i [concrete = constants.%i.patt] // CHECK:STDOUT: } // CHECK:STDOUT: %r.ref: @TestIterate.%R.as_type.loc20_61.1 (%R.as_type) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc24_19.1: @TestIterate.%.loc24_19.19 (%.41f) = impl_witness_access constants.%Iterate.lookup_impl_witness.757, element2 [symbolic = %impl.elem2.loc24_19.2 (constants.%impl.elem2.804)] +// CHECK:STDOUT: %impl.elem2.loc24_19.1: @TestIterate.%.loc24_19.19 (%.bf4) = impl_witness_access constants.%Iterate.lookup_impl_witness.0cb, element2 [symbolic = %impl.elem2.loc24_19.2 (constants.%impl.elem2.1a5)] // CHECK:STDOUT: %bound_method.loc24_19.1: = bound_method %r.ref, %impl.elem2.loc24_19.1 -// CHECK:STDOUT: %Iterate.facet.loc24_19.1: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.757) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc24_19.1: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc24_19.1 [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %Iterate.facet.loc24_19.2: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.757) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc24_19.2: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc24_19.2 [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %specific_impl_fn.loc24_19.1: = specific_impl_function %impl.elem2.loc24_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.737) [symbolic = %specific_impl_fn.loc24_19.4 (constants.%specific_impl_fn.a60)] +// CHECK:STDOUT: %Iterate.facet.loc24_19.1: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.0cb) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc24_19.1: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc24_19.1 [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %Iterate.facet.loc24_19.2: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.0cb) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc24_19.2: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc24_19.2 [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.1: = specific_impl_function %impl.elem2.loc24_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.a3a) [symbolic = %specific_impl_fn.loc24_19.4 (constants.%specific_impl_fn.40d)] // CHECK:STDOUT: %bound_method.loc24_19.2: = bound_method %r.ref, %specific_impl_fn.loc24_19.1 -// CHECK:STDOUT: %var: ref @TestIterate.%as_type (%as_type.b98) = var_storage invalid -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @TestIterate.%as_type (%as_type.b98) to %var = call %bound_method.loc24_19.2(%r.ref) +// CHECK:STDOUT: %var: ref @TestIterate.%as_type (%as_type.033) = var_storage invalid +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @TestIterate.%as_type (%as_type.033) to %var = call %bound_method.loc24_19.2(%r.ref) // CHECK:STDOUT: assign %var, %Iterate.WithSelf.NewCursor.call // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.next: -// CHECK:STDOUT: %addr: @TestIterate.%ptr (%ptr.f03) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc24_19.1: @TestIterate.%.loc24_19.20 (%.ecb) = impl_witness_access constants.%Iterate.lookup_impl_witness.757, element3 [symbolic = %impl.elem3.loc24_19.2 (constants.%impl.elem3.d3c)] +// CHECK:STDOUT: %addr: @TestIterate.%ptr (%ptr.e53) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc24_19.1: @TestIterate.%.loc24_19.20 (%.b72) = impl_witness_access constants.%Iterate.lookup_impl_witness.0cb, element3 [symbolic = %impl.elem3.loc24_19.2 (constants.%impl.elem3.eef)] // CHECK:STDOUT: %bound_method.loc24_19.3: = bound_method %r.ref, %impl.elem3.loc24_19.1 -// CHECK:STDOUT: %Iterate.facet.loc24_19.3: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.757) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc24_19.3: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc24_19.3 [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %Iterate.facet.loc24_19.4: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.757) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc24_19.4: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc24_19.4 [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc24_19.5: %Destroy.type = converted constants.%as_type.b98, constants.%impl.elem1.e8e [symbolic = %impl.elem1 (constants.%impl.elem1.e8e)] -// CHECK:STDOUT: %.loc24_19.6: %Destroy.type = converted constants.%as_type.b98, constants.%impl.elem1.e8e [symbolic = %impl.elem1 (constants.%impl.elem1.e8e)] -// CHECK:STDOUT: %specific_impl_fn.loc24_19.2: = specific_impl_function %impl.elem3.loc24_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.737) [symbolic = %specific_impl_fn.loc24_19.5 (constants.%specific_impl_fn.b90)] +// CHECK:STDOUT: %Iterate.facet.loc24_19.3: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.0cb) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc24_19.3: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc24_19.3 [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %Iterate.facet.loc24_19.4: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.0cb) [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc24_19.4: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc24_19.4 [symbolic = %Iterate.facet.loc24_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc24_19.5: %Destroy.type = converted constants.%as_type.033, constants.%impl.elem1.abd [symbolic = %impl.elem1 (constants.%impl.elem1.abd)] +// CHECK:STDOUT: %.loc24_19.6: %Destroy.type = converted constants.%as_type.033, constants.%impl.elem1.abd [symbolic = %impl.elem1 (constants.%impl.elem1.abd)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.2: = specific_impl_function %impl.elem3.loc24_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.a3a) [symbolic = %specific_impl_fn.loc24_19.5 (constants.%specific_impl_fn.e16)] // CHECK:STDOUT: %bound_method.loc24_19.4: = bound_method %r.ref, %specific_impl_fn.loc24_19.2 -// CHECK:STDOUT: %.loc24_19.7: ref %Optional.e07 = temporary_storage -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.e07 to %.loc24_19.7 = call %bound_method.loc24_19.4(%r.ref, %addr) -// CHECK:STDOUT: %.loc24_19.8: ref %Optional.e07 = temporary %.loc24_19.7, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc24_19.9: %Optional.HasValue.type.43a = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.HasValue.1c0] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.43a = name_ref HasValue, %.loc24_19.9 [concrete = constants.%Optional.HasValue.1c0] +// CHECK:STDOUT: %.loc24_19.7: ref %Optional.72d = temporary_storage +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.72d to %.loc24_19.7 = call %bound_method.loc24_19.4(%r.ref, %addr) +// CHECK:STDOUT: %.loc24_19.8: ref %Optional.72d = temporary %.loc24_19.7, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc24_19.9: %Optional.HasValue.type.7a6 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.HasValue.afd] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.7a6 = name_ref HasValue, %.loc24_19.9 [concrete = constants.%Optional.HasValue.afd] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc24_19.8, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.HasValue.specific_fn.0a6] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.HasValue.specific_fn.cd8] // CHECK:STDOUT: %bound_method.loc24_19.5: = bound_method %.loc24_19.8, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc24_19.10: %Optional.e07 = acquire_value %.loc24_19.8 +// CHECK:STDOUT: %.loc24_19.10: %Optional.72d = acquire_value %.loc24_19.8 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc24_19.5(%.loc24_19.10) // CHECK:STDOUT: %.loc24_19.11: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc24_19.12: bool = converted %Optional.HasValue.call, %.loc24_19.11 // CHECK:STDOUT: if %.loc24_19.12 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc24_19.13: %Optional.Get.type.a84 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.Get.4e0] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.a84 = name_ref Get, %.loc24_19.13 [concrete = constants.%Optional.Get.4e0] +// CHECK:STDOUT: %.loc24_19.13: %Optional.Get.type.65e = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.Get.ef5] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.65e = name_ref Get, %.loc24_19.13 [concrete = constants.%Optional.Get.ef5] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc24_19.8, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.Get.specific_fn.3a1] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.Get.specific_fn.1e8] // CHECK:STDOUT: %bound_method.loc24_19.6: = bound_method %.loc24_19.8, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc24_19.14: %Optional.e07 = acquire_value %.loc24_19.8 +// CHECK:STDOUT: %.loc24_19.14: %Optional.72d = acquire_value %.loc24_19.8 // CHECK:STDOUT: %Optional.Get.call: init %f64.dc1 = call %bound_method.loc24_19.6(%.loc24_19.14) // CHECK:STDOUT: %.loc24_19.15: %f64.dc1 = value_of_initializer %Optional.Get.call // CHECK:STDOUT: %.loc24_19.16: %f64.dc1 = converted %Optional.Get.call, %.loc24_19.15 @@ -2748,47 +2748,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Float.as.AddAssignWith.impl.Op(constants.%int_64) [concrete = constants.%Float.as.AddAssignWith.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc25_9.2: = bound_method %sum.ref, %specific_fn.loc25 // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc25_9.2(%sum.ref, %i.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc24_19.1: = bound_method %.loc24_19.8, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc24_19.1: init %empty_tuple.type = call %Destroy.Op.bound.loc24_19.1(%.loc24_19.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc24_19.1: = bound_method %.loc24_19.8, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24_19.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc24_19.1(%.loc24_19.8) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc24_19.2: = bound_method %.loc24_19.8, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc24_19.2: init %empty_tuple.type = call %Destroy.Op.bound.loc24_19.2(%.loc24_19.8) -// CHECK:STDOUT: %impl.elem0.loc24_19.1: @TestIterate.%.loc24_19.21 (%.f38) = impl_witness_access constants.%Destroy.lookup_impl_witness.02f, element0 [symbolic = %impl.elem0.loc24_19.2 (constants.%impl.elem0.54b)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc24_19.2: = bound_method %.loc24_19.8, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24_19.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc24_19.2(%.loc24_19.8) +// CHECK:STDOUT: %impl.elem0.loc24_19.1: @TestIterate.%.loc24_19.21 (%.fe0) = impl_witness_access constants.%Destroy.lookup_impl_witness.303, element0 [symbolic = %impl.elem0.loc24_19.2 (constants.%impl.elem0.15f)] // CHECK:STDOUT: %bound_method.loc24_19.7: = bound_method %var, %impl.elem0.loc24_19.1 -// CHECK:STDOUT: %.loc24_19.17: %Destroy.type = converted constants.%as_type.b98, constants.%impl.elem1.e8e [symbolic = %impl.elem1 (constants.%impl.elem1.e8e)] -// CHECK:STDOUT: %.loc24_19.18: %Destroy.type = converted constants.%as_type.b98, constants.%impl.elem1.e8e [symbolic = %impl.elem1 (constants.%impl.elem1.e8e)] -// CHECK:STDOUT: %specific_impl_fn.loc24_19.3: = specific_impl_function %impl.elem0.loc24_19.1, @Destroy.WithSelf.Op(constants.%impl.elem1.e8e) [symbolic = %specific_impl_fn.loc24_19.6 (constants.%specific_impl_fn.b70)] +// CHECK:STDOUT: %.loc24_19.17: %Destroy.type = converted constants.%as_type.033, constants.%impl.elem1.abd [symbolic = %impl.elem1 (constants.%impl.elem1.abd)] +// CHECK:STDOUT: %.loc24_19.18: %Destroy.type = converted constants.%as_type.033, constants.%impl.elem1.abd [symbolic = %impl.elem1 (constants.%impl.elem1.abd)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.3: = specific_impl_function %impl.elem0.loc24_19.1, @Destroy.WithSelf.Op.1(constants.%impl.elem1.abd) [symbolic = %specific_impl_fn.loc24_19.6 (constants.%specific_impl_fn.2a1)] // CHECK:STDOUT: %bound_method.loc24_19.8: = bound_method %var, %specific_impl_fn.loc24_19.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc24_19.8(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24_19.3: init %empty_tuple.type = call %bound_method.loc24_19.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.1(%self.param: ref %.cc0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_19.1(%self.param: ref %.cc0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.2(%self.param: ref %MaybeUnformed.b7e) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_19.2(%self.param: ref %MaybeUnformed.5b0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.3(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_19.3(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.4(%self.param: ref %struct_type.value.has_value.ad9) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_19.4(%self.param: ref %struct_type.value.has_value.a24) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.5(%self.param: ref %DefaultOptionalStorage.8c0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_19.5(%self.param: ref %DefaultOptionalStorage.a3f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.6(%self.param: ref %Optional.e07) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24_19.6(%self.param: ref %Optional.72d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2800,13 +2800,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.patt: %pattern_type.fb7 = value_binding_pattern i [concrete = constants.%i.patt] // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref: %ConstRange = name_ref c, %c -// CHECK:STDOUT: %impl.elem2: %.835 = impl_witness_access constants.%Iterate.impl_witness.526, element2 [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.5bc] +// CHECK:STDOUT: %impl.elem2: %.608 = impl_witness_access constants.%Iterate.impl_witness.e1c, element2 [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.89a] // CHECK:STDOUT: %bound_method.loc38_19.1: = bound_method %c.ref, %impl.elem2 -// CHECK:STDOUT: %facet_value.loc38_19.1: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.5d5, constants.%custom_witness.213, constants.%custom_witness.994, constants.%custom_witness.393, constants.%custom_witness.821) [concrete = constants.%facet_value.bbe] -// CHECK:STDOUT: %.loc38_19.1: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc38_19.1 [concrete = constants.%facet_value.bbe] -// CHECK:STDOUT: %facet_value.loc38_19.2: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.5d5, constants.%custom_witness.213, constants.%custom_witness.994, constants.%custom_witness.393, constants.%custom_witness.821) [concrete = constants.%facet_value.bbe] -// CHECK:STDOUT: %.loc38_19.2: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc38_19.2 [concrete = constants.%facet_value.bbe] -// CHECK:STDOUT: %specific_fn.loc38_19.1: = specific_function %impl.elem2, @T.as_type.as.Iterate.impl.NewCursor(constants.%facet_value.bbe) [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn] +// CHECK:STDOUT: %facet_value.loc38_19.1: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.6c4ec3.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.5d5, constants.%custom_witness.213, constants.%custom_witness.994, constants.%custom_witness.393, constants.%custom_witness.821) [concrete = constants.%facet_value.fd3] +// CHECK:STDOUT: %.loc38_19.1: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc38_19.1 [concrete = constants.%facet_value.fd3] +// CHECK:STDOUT: %facet_value.loc38_19.2: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.6c4ec3.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.5d5, constants.%custom_witness.213, constants.%custom_witness.994, constants.%custom_witness.393, constants.%custom_witness.821) [concrete = constants.%facet_value.fd3] +// CHECK:STDOUT: %.loc38_19.2: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc38_19.2 [concrete = constants.%facet_value.fd3] +// CHECK:STDOUT: %specific_fn.loc38_19.1: = specific_function %impl.elem2, @T.as_type.as.Iterate.impl.NewCursor(constants.%facet_value.fd3) [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc38_19.2: = bound_method %c.ref, %specific_fn.loc38_19.1 // CHECK:STDOUT: %var: ref %tuple.type.005 = var_storage invalid // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.call: init %tuple.type.005 to %var = call %bound_method.loc38_19.2(%c.ref) @@ -2815,35 +2815,35 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr: %ptr.d1a = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.7d6 = impl_witness_access constants.%Iterate.impl_witness.526, element3 [concrete = constants.%T.as_type.as.Iterate.impl.Next.a4d] +// CHECK:STDOUT: %impl.elem3: %.ced = impl_witness_access constants.%Iterate.impl_witness.e1c, element3 [concrete = constants.%T.as_type.as.Iterate.impl.Next.ac9] // CHECK:STDOUT: %bound_method.loc38_19.3: = bound_method %c.ref, %impl.elem3 -// CHECK:STDOUT: %facet_value.loc38_19.3: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.5d5, constants.%custom_witness.213, constants.%custom_witness.994, constants.%custom_witness.393, constants.%custom_witness.821) [concrete = constants.%facet_value.bbe] -// CHECK:STDOUT: %.loc38_19.3: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc38_19.3 [concrete = constants.%facet_value.bbe] -// CHECK:STDOUT: %facet_value.loc38_19.4: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.5d5, constants.%custom_witness.213, constants.%custom_witness.994, constants.%custom_witness.393, constants.%custom_witness.821) [concrete = constants.%facet_value.bbe] -// CHECK:STDOUT: %.loc38_19.4: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc38_19.4 [concrete = constants.%facet_value.bbe] -// CHECK:STDOUT: %specific_fn.loc38_19.2: = specific_function %impl.elem3, @T.as_type.as.Iterate.impl.Next(constants.%facet_value.bbe) [concrete = constants.%T.as_type.as.Iterate.impl.Next.specific_fn] +// CHECK:STDOUT: %facet_value.loc38_19.3: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.6c4ec3.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.5d5, constants.%custom_witness.213, constants.%custom_witness.994, constants.%custom_witness.393, constants.%custom_witness.821) [concrete = constants.%facet_value.fd3] +// CHECK:STDOUT: %.loc38_19.3: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc38_19.3 [concrete = constants.%facet_value.fd3] +// CHECK:STDOUT: %facet_value.loc38_19.4: %CppRange_where.type.d682d6.1 = facet_value constants.%ConstRange, (constants.%custom_witness.6c4ec3.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.5d5, constants.%custom_witness.213, constants.%custom_witness.994, constants.%custom_witness.393, constants.%custom_witness.821) [concrete = constants.%facet_value.fd3] +// CHECK:STDOUT: %.loc38_19.4: %CppRange_where.type.d682d6.1 = converted constants.%ConstRange, %facet_value.loc38_19.4 [concrete = constants.%facet_value.fd3] +// CHECK:STDOUT: %specific_fn.loc38_19.2: = specific_function %impl.elem3, @T.as_type.as.Iterate.impl.Next(constants.%facet_value.fd3) [concrete = constants.%T.as_type.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc38_19.4: = bound_method %c.ref, %specific_fn.loc38_19.2 -// CHECK:STDOUT: %.loc38_19.5: ref %Optional.e07 = temporary_storage -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.call: init %Optional.e07 to %.loc38_19.5 = call %bound_method.loc38_19.4(%c.ref, %addr) -// CHECK:STDOUT: %.loc38_19.6: ref %Optional.e07 = temporary %.loc38_19.5, %T.as_type.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc38_19.7: %Optional.HasValue.type.43a = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.HasValue.1c0] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.43a = name_ref HasValue, %.loc38_19.7 [concrete = constants.%Optional.HasValue.1c0] +// CHECK:STDOUT: %.loc38_19.5: ref %Optional.72d = temporary_storage +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.call: init %Optional.72d to %.loc38_19.5 = call %bound_method.loc38_19.4(%c.ref, %addr) +// CHECK:STDOUT: %.loc38_19.6: ref %Optional.72d = temporary %.loc38_19.5, %T.as_type.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc38_19.7: %Optional.HasValue.type.7a6 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.HasValue.afd] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.7a6 = name_ref HasValue, %.loc38_19.7 [concrete = constants.%Optional.HasValue.afd] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc38_19.6, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.HasValue.specific_fn.0a6] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.HasValue.specific_fn.cd8] // CHECK:STDOUT: %bound_method.loc38_19.5: = bound_method %.loc38_19.6, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc38_19.8: %Optional.e07 = acquire_value %.loc38_19.6 +// CHECK:STDOUT: %.loc38_19.8: %Optional.72d = acquire_value %.loc38_19.6 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc38_19.5(%.loc38_19.8) // CHECK:STDOUT: %.loc38_19.9: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc38_19.10: bool = converted %Optional.HasValue.call, %.loc38_19.9 // CHECK:STDOUT: if %.loc38_19.10 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc38_19.11: %Optional.Get.type.a84 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.Get.4e0] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.a84 = name_ref Get, %.loc38_19.11 [concrete = constants.%Optional.Get.4e0] +// CHECK:STDOUT: %.loc38_19.11: %Optional.Get.type.65e = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.Get.ef5] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.65e = name_ref Get, %.loc38_19.11 [concrete = constants.%Optional.Get.ef5] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc38_19.6, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.Get.specific_fn.3a1] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.Get.specific_fn.1e8] // CHECK:STDOUT: %bound_method.loc38_19.6: = bound_method %.loc38_19.6, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc38_19.12: %Optional.e07 = acquire_value %.loc38_19.6 +// CHECK:STDOUT: %.loc38_19.12: %Optional.72d = acquire_value %.loc38_19.6 // CHECK:STDOUT: %Optional.Get.call: init %f64.dc1 = call %bound_method.loc38_19.6(%.loc38_19.12) // CHECK:STDOUT: %.loc38_19.13: %f64.dc1 = value_of_initializer %Optional.Get.call // CHECK:STDOUT: %.loc38_19.14: %f64.dc1 = converted %Optional.Get.call, %.loc38_19.13 @@ -2856,15 +2856,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %specific_fn.loc39: = specific_function %impl.elem0.loc39, @Float.as.AddAssignWith.impl.Op(constants.%int_64) [concrete = constants.%Float.as.AddAssignWith.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc39_9.2: = bound_method %sum.ref, %specific_fn.loc39 // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc39_9.2(%sum.ref, %i.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc38_19.1: = bound_method %.loc38_19.6, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc38_19.1: init %empty_tuple.type = call %Destroy.Op.bound.loc38_19.1(%.loc38_19.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc38_19.1: = bound_method %.loc38_19.6, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc38_19.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc38_19.1(%.loc38_19.6) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc38_19.2: = bound_method %.loc38_19.6, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc38_19.2: init %empty_tuple.type = call %Destroy.Op.bound.loc38_19.2(%.loc38_19.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc38_19.3: = bound_method %var, constants.%Destroy.Op.1a2547.10 -// CHECK:STDOUT: %Destroy.Op.call.loc38_19.3: init %empty_tuple.type = call %Destroy.Op.bound.loc38_19.3(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc38_19.2: = bound_method %.loc38_19.6, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc38_19.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc38_19.2(%.loc38_19.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc38_19.3: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc38_19.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc38_19.3(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2872,14 +2872,14 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %R.patt.loc20_17.2 => constants.%R.patt // CHECK:STDOUT: %R.loc20_17.1 => constants.%R // CHECK:STDOUT: %R.as_type.loc20_61.1 => constants.%R.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d35 -// CHECK:STDOUT: %r.param_patt.loc20_59.2 => constants.%r.param_patt.bc2 -// CHECK:STDOUT: %r.patt.loc20_59.2 => constants.%r.patt.47e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.15f +// CHECK:STDOUT: %r.param_patt.loc20_59.2 => constants.%r.param_patt.f80 +// CHECK:STDOUT: %r.patt.loc20_59.2 => constants.%r.patt.fdd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestIterate(constants.%facet_value.eb1) { +// CHECK:STDOUT: specific @TestIterate(constants.%facet_value.d3b) { // CHECK:STDOUT: %R.patt.loc20_17.2 => constants.%R.patt -// CHECK:STDOUT: %R.loc20_17.1 => constants.%facet_value.eb1 +// CHECK:STDOUT: %R.loc20_17.1 => constants.%facet_value.d3b // CHECK:STDOUT: %R.as_type.loc20_61.1 => constants.%ConstRange // CHECK:STDOUT: %pattern_type => constants.%pattern_type.025 // CHECK:STDOUT: %r.param_patt.loc20_59.2 => constants.%r.param_patt.a73 @@ -2887,25 +2887,25 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc20 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.526 -// CHECK:STDOUT: %Iterate.facet.loc24_19.5 => constants.%Iterate.facet.212 -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.8e0 -// CHECK:STDOUT: %.loc24_19.19 => constants.%.835 -// CHECK:STDOUT: %impl.elem2.loc24_19.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.5bc +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.e1c +// CHECK:STDOUT: %Iterate.facet.loc24_19.5 => constants.%Iterate.facet.b4e +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.408 +// CHECK:STDOUT: %.loc24_19.19 => constants.%.608 +// CHECK:STDOUT: %impl.elem2.loc24_19.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.89a // CHECK:STDOUT: %specific_impl_fn.loc24_19.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.40b +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.16ee // CHECK:STDOUT: %as_type => constants.%tuple.type.005 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.320 // CHECK:STDOUT: %ptr => constants.%ptr.d1a -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.2d3 -// CHECK:STDOUT: %.loc24_19.20 => constants.%.7d6 -// CHECK:STDOUT: %impl.elem3.loc24_19.2 => constants.%T.as_type.as.Iterate.impl.Next.a4d +// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.01a +// CHECK:STDOUT: %.loc24_19.20 => constants.%.ced +// CHECK:STDOUT: %impl.elem3.loc24_19.2 => constants.%T.as_type.as.Iterate.impl.Next.ac9 // CHECK:STDOUT: %specific_impl_fn.loc24_19.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.117 -// CHECK:STDOUT: %.loc24_19.21 => constants.%.5a4 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.10 -// CHECK:STDOUT: %impl.elem0.loc24_19.2 => constants.%Destroy.Op.1a2547.10 -// CHECK:STDOUT: %specific_impl_fn.loc24_19.6 => constants.%Destroy.Op.1a2547.10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e14 +// CHECK:STDOUT: %.loc24_19.21 => constants.%.3d8 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.10 +// CHECK:STDOUT: %impl.elem0.loc24_19.2 => constants.%Destroy.WithSelf.Op.403171.10 +// CHECK:STDOUT: %specific_impl_fn.loc24_19.6 => constants.%Destroy.WithSelf.Op.403171.10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_adl_returns_same_types_mutable.carbon @@ -2959,51 +2959,51 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %f64.dc1 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc22_53.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.3: = custom_witness (%Destroy.Op.1a2547.3), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc22_53.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.3: = custom_witness (%Destroy.WithSelf.Op.403171.3), @Destroy [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N.fe9) [symbolic] // CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.0d6: = impl_witness imports.%Copy.impl_witness_table.8dd, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %facet_value.20d: %facet_type.f48 = facet_value %f64.dc1, (%custom_witness.df9cc1.3, %Copy.impl_witness.0d6) [concrete] +// CHECK:STDOUT: %facet_value.46e: %facet_type.f48 = facet_value %f64.dc1, (%custom_witness.6c4ec3.3, %Copy.impl_witness.0d6) [concrete] // CHECK:STDOUT: %Iterate.lookup_impl_witness.1d8: = lookup_impl_witness %.Self.500, @Iterate [symbolic_self] // CHECK:STDOUT: %impl.elem0.294: %facet_type.f48 = impl_witness_access %Iterate.lookup_impl_witness.1d8, element0 [symbolic_self] -// CHECK:STDOUT: %Iterate_where.type.e6d: type = facet_type <@Iterate where %impl.elem0.294 = %facet_value.20d> [concrete] -// CHECK:STDOUT: %pattern_type.dc5: type = pattern_type %Iterate_where.type.e6d [concrete] -// CHECK:STDOUT: %R.patt: %pattern_type.dc5 = symbolic_binding_pattern R, 0 [symbolic] -// CHECK:STDOUT: %R: %Iterate_where.type.e6d = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %Iterate_where.type.13a: type = facet_type <@Iterate where %impl.elem0.294 = %facet_value.46e> [concrete] +// CHECK:STDOUT: %pattern_type.a31: type = pattern_type %Iterate_where.type.13a [concrete] +// CHECK:STDOUT: %R.patt: %pattern_type.a31 = symbolic_binding_pattern R, 0 [symbolic] +// CHECK:STDOUT: %R: %Iterate_where.type.13a = symbolic_binding R, 0 [symbolic] // CHECK:STDOUT: %R.as_type: type = facet_access_type %R [symbolic] -// CHECK:STDOUT: %pattern_type.d35: type = pattern_type %R.as_type [symbolic] -// CHECK:STDOUT: %r.param_patt.bc2: %pattern_type.d35 = value_param_pattern [symbolic] -// CHECK:STDOUT: %r.patt.47e: %pattern_type.d35 = wrapper_binding_pattern r, %r.param_patt.bc2 [symbolic] +// CHECK:STDOUT: %pattern_type.15f: type = pattern_type %R.as_type [symbolic] +// CHECK:STDOUT: %r.param_patt.f80: %pattern_type.15f = value_param_pattern [symbolic] +// CHECK:STDOUT: %r.patt.fdd: %pattern_type.15f = wrapper_binding_pattern r, %r.param_patt.f80 [symbolic] // CHECK:STDOUT: %i.patt: %pattern_type.fb7 = value_binding_pattern i [concrete] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.757: = lookup_impl_witness %R, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet.737: %Iterate.type = facet_value %R.as_type, (%Iterate.lookup_impl_witness.757) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.346: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.737) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.f8a: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.737) [symbolic] -// CHECK:STDOUT: %.41f: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.346, %Iterate.facet.737 [symbolic] -// CHECK:STDOUT: %impl.elem2.804: %.41f = impl_witness_access %Iterate.lookup_impl_witness.757, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.e8e: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.757, element1 [symbolic] -// CHECK:STDOUT: %as_type.b98: type = facet_access_type %impl.elem1.e8e [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a60: = specific_impl_function %impl.elem2.804, @Iterate.WithSelf.NewCursor(%Iterate.facet.737) [symbolic] -// CHECK:STDOUT: %ptr.f03: type = ptr_type %as_type.b98 [symbolic] -// CHECK:STDOUT: %.ecb: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.f8a, %Iterate.facet.737 [symbolic] -// CHECK:STDOUT: %impl.elem3.d3c: %.ecb = impl_witness_access %Iterate.lookup_impl_witness.757, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.8c0: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.20d) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.872: = impl_witness imports.%OptionalStorage.impl_witness_table.460, @T.as_type.as.OptionalStorage.impl(%facet_value.20d) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.4d5: %OptionalStorage.type = facet_value %f64.dc1, (%OptionalStorage.impl_witness.872) [concrete] -// CHECK:STDOUT: %Optional.e07: type = class_type @Optional, @Optional(%OptionalStorage.facet.4d5) [concrete] -// CHECK:STDOUT: %specific_impl_fn.b90: = specific_impl_function %impl.elem3.d3c, @Iterate.WithSelf.Next(%Iterate.facet.737) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.43a: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.4d5) [concrete] -// CHECK:STDOUT: %Optional.HasValue.1c0: %Optional.HasValue.type.43a = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.a84: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.4d5) [concrete] -// CHECK:STDOUT: %Optional.Get.4e0: %Optional.Get.type.a84 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.339: %Destroy.type = facet_value %f64.dc1, (%custom_witness.df9cc1.3) [concrete] -// CHECK:STDOUT: %MaybeUnformed.b7e: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.339) [concrete] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.0cb: = lookup_impl_witness %R, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet.a3a: %Iterate.type = facet_value %R.as_type, (%Iterate.lookup_impl_witness.0cb) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.228: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.a3a) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.431: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.a3a) [symbolic] +// CHECK:STDOUT: %.bf4: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.228, %Iterate.facet.a3a [symbolic] +// CHECK:STDOUT: %impl.elem2.1a5: %.bf4 = impl_witness_access %Iterate.lookup_impl_witness.0cb, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.abd: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.0cb, element1 [symbolic] +// CHECK:STDOUT: %as_type.033: type = facet_access_type %impl.elem1.abd [symbolic] +// CHECK:STDOUT: %specific_impl_fn.40d: = specific_impl_function %impl.elem2.1a5, @Iterate.WithSelf.NewCursor(%Iterate.facet.a3a) [symbolic] +// CHECK:STDOUT: %ptr.e53: type = ptr_type %as_type.033 [symbolic] +// CHECK:STDOUT: %.b72: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.431, %Iterate.facet.a3a [symbolic] +// CHECK:STDOUT: %impl.elem3.eef: %.b72 = impl_witness_access %Iterate.lookup_impl_witness.0cb, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.a3f: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.46e) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.366: = impl_witness imports.%OptionalStorage.impl_witness_table.460, @T.as_type.as.OptionalStorage.impl(%facet_value.46e) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.1e4: %OptionalStorage.type = facet_value %f64.dc1, (%OptionalStorage.impl_witness.366) [concrete] +// CHECK:STDOUT: %Optional.72d: type = class_type @Optional, @Optional(%OptionalStorage.facet.1e4) [concrete] +// CHECK:STDOUT: %specific_impl_fn.e16: = specific_impl_function %impl.elem3.eef, @Iterate.WithSelf.Next(%Iterate.facet.a3a) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.7a6: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.1e4) [concrete] +// CHECK:STDOUT: %Optional.HasValue.afd: %Optional.HasValue.type.7a6 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.65e: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.1e4) [concrete] +// CHECK:STDOUT: %Optional.Get.ef5: %Optional.Get.type.65e = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.facet.d8e: %Destroy.type = facet_value %f64.dc1, (%custom_witness.6c4ec3.3) [concrete] +// CHECK:STDOUT: %MaybeUnformed.5b0: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.d8e) [concrete] // CHECK:STDOUT: %.cc0: type = maybe_unformed_type %f64.dc1 [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.ad9: type = struct_type {.value: %MaybeUnformed.b7e, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn.0a6: = specific_function %Optional.HasValue.1c0, @Optional.HasValue(%OptionalStorage.facet.4d5) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn.3a1: = specific_function %Optional.Get.4e0, @Optional.Get(%OptionalStorage.facet.4d5) [concrete] +// CHECK:STDOUT: %struct_type.value.has_value.a24: type = struct_type {.value: %MaybeUnformed.5b0, .has_value: bool} [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn.cd8: = specific_function %Optional.HasValue.afd, @Optional.HasValue(%OptionalStorage.facet.1e4) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn.1e8: = specific_function %Optional.Get.ef5, @Optional.Get(%OptionalStorage.facet.1e4) [concrete] // CHECK:STDOUT: %AddAssignWith.type.ff9: type = facet_type <@AddAssignWith, @AddAssignWith(%f64.dc1)> [concrete] // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.type.fdd: type = fn_type @Float.as.AddAssignWith.impl.Op, @Float.as.AddAssignWith.impl(%N.fe9) [symbolic] // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.430: %Float.as.AddAssignWith.impl.Op.type.fdd = struct_value () [symbolic] @@ -3014,13 +3014,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.d04: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%f64.dc1, %AddAssignWith.facet) [concrete] // CHECK:STDOUT: %.918: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.d04, %AddAssignWith.facet [concrete] // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Float.as.AddAssignWith.impl.Op.ac1, @Float.as.AddAssignWith.impl.Op(%int_64) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.9: type = fn_type @Destroy.Op.loc26_19.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.9: %Destroy.Op.type.1d8f74.9 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.02f: = lookup_impl_witness %impl.elem1.e8e, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.f26: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.e8e) [symbolic] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.f26, %impl.elem1.e8e [symbolic] -// CHECK:STDOUT: %impl.elem0.54b: %.f38 = impl_witness_access %Destroy.lookup_impl_witness.02f, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.b70: = specific_impl_function %impl.elem0.54b, @Destroy.WithSelf.Op(%impl.elem1.e8e) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.9: type = fn_type @Destroy.WithSelf.Op.loc26_19.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.9: %Destroy.WithSelf.Op.type.ef016f.9 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.303: = lookup_impl_witness %impl.elem1.abd, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2e9: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1.abd) [symbolic] +// CHECK:STDOUT: %.fe0: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.2e9, %impl.elem1.abd [symbolic] +// CHECK:STDOUT: %impl.elem0.15f: %.fe0 = impl_witness_access %Destroy.lookup_impl_witness.303, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2a1: = specific_impl_function %impl.elem0.15f, @Destroy.WithSelf.Op.1(%impl.elem1.abd) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] // CHECK:STDOUT: %pattern_type.992: type = pattern_type %MutableRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -3045,30 +3045,30 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %NotEqual.type: type = fn_type @NotEqual [concrete] // CHECK:STDOUT: %NotEqual: %NotEqual.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.ed8: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] -// CHECK:STDOUT: %facet_value.bed: %CppRange_where.type.d682d6.1 = facet_value %MutableRange, (%custom_witness.df9cc1.3, %Copy.impl_witness.0d6, %custom_witness.902, %custom_witness.c08, %custom_witness.05b, %custom_witness.491, %custom_witness.ed8) [concrete] +// CHECK:STDOUT: %facet_value.ca9: %CppRange_where.type.d682d6.1 = facet_value %MutableRange, (%custom_witness.6c4ec3.3, %Copy.impl_witness.0d6, %custom_witness.902, %custom_witness.c08, %custom_witness.05b, %custom_witness.491, %custom_witness.ed8) [concrete] // CHECK:STDOUT: %tuple.type.dd0: type = tuple_type (%Iterator, %Iterator) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.10: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.10: %Destroy.Op.type.1d8f74.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.10: = custom_witness (%Destroy.Op.1a2547.10), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.e1e: %Destroy.type = facet_value %tuple.type.dd0, (%custom_witness.df9cc1.10) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.15e: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.bed) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.ed2: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.bed) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.f6c: %T.as_type.as.Iterate.impl.NewCursor.type.ed2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.type.ea9: type = fn_type @T.as_type.as.Iterate.impl.Next, @T.as_type.as.Iterate.impl(%facet_value.bed) [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.630: %T.as_type.as.Iterate.impl.Next.type.ea9 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.24a: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.15e) [concrete] -// CHECK:STDOUT: %facet_value.6bc: %Iterate_where.type.e6d = facet_value %MutableRange, (%Iterate.impl_witness.15e) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.10: type = fn_type @Destroy.WithSelf.Op.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.10: %Destroy.WithSelf.Op.type.ef016f.10 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.10: = custom_witness (%Destroy.WithSelf.Op.403171.10), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.193: %Destroy.type = facet_value %tuple.type.dd0, (%custom_witness.6c4ec3.10) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.083: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.ca9) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.c16: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.ca9) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.d12: %T.as_type.as.Iterate.impl.NewCursor.type.c16 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.type.738: type = fn_type @T.as_type.as.Iterate.impl.Next, @T.as_type.as.Iterate.impl(%facet_value.ca9) [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.e47: %T.as_type.as.Iterate.impl.Next.type.738 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.1aa: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.083) [concrete] +// CHECK:STDOUT: %facet_value.f44: %Iterate_where.type.13a = facet_value %MutableRange, (%Iterate.impl_witness.083) [concrete] // CHECK:STDOUT: %r.param_patt.aeb: %pattern_type.992 = value_param_pattern [concrete] // CHECK:STDOUT: %r.patt.892: %pattern_type.992 = wrapper_binding_pattern r, %r.param_patt.aeb [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.4f1: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.24a) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.e92: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.24a) [concrete] -// CHECK:STDOUT: %.534: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.4f1, %Iterate.facet.24a [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %T.as_type.as.Iterate.impl.NewCursor.f6c, @T.as_type.as.Iterate.impl.NewCursor(%facet_value.bed) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.ee3: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.1aa) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.ab1: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.1aa) [concrete] +// CHECK:STDOUT: %.d89: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.ee3, %Iterate.facet.1aa [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %T.as_type.as.Iterate.impl.NewCursor.d12, @T.as_type.as.Iterate.impl.NewCursor(%facet_value.ca9) [concrete] // CHECK:STDOUT: %ptr.a4f: type = ptr_type %tuple.type.dd0 [concrete] -// CHECK:STDOUT: %.8b9: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.e92, %Iterate.facet.24a [concrete] -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %T.as_type.as.Iterate.impl.Next.630, @T.as_type.as.Iterate.impl.Next(%facet_value.bed) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.452: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.e1e) [concrete] -// CHECK:STDOUT: %.899: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.452, %Destroy.facet.e1e [concrete] +// CHECK:STDOUT: %.6e6: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.ab1, %Iterate.facet.1aa [concrete] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %T.as_type.as.Iterate.impl.Next.e47, @T.as_type.as.Iterate.impl.Next(%facet_value.ca9) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ada: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.193) [concrete] +// CHECK:STDOUT: %.183: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.ada, %Destroy.facet.193 [concrete] // CHECK:STDOUT: %complete_type.843: = complete_type_witness %tuple.type.dd0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3093,28 +3093,28 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %AddAssignWith.impl_witness_table = impl_witness_table (%Core.import_ref.cb3), @Float.as.AddAssignWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TestIterate(%R.loc22_17.2: %Iterate_where.type.e6d) { +// CHECK:STDOUT: generic fn @TestIterate(%R.loc22_17.2: %Iterate_where.type.13a) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc22_17.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.757)] -// CHECK:STDOUT: %Iterate.facet.loc26_19.5: %Iterate.type = facet_value %R.as_type.loc22_61.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.loc26_19.5) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.346)] -// CHECK:STDOUT: %.loc26_19.19: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet.loc26_19.5 [symbolic = %.loc26_19.19 (constants.%.41f)] -// CHECK:STDOUT: %impl.elem2.loc26_19.2: @TestIterate.%.loc26_19.19 (%.41f) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc26_19.2 (constants.%impl.elem2.804)] -// CHECK:STDOUT: %specific_impl_fn.loc26_19.4: = specific_impl_function %impl.elem2.loc26_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet.loc26_19.5) [symbolic = %specific_impl_fn.loc26_19.4 (constants.%specific_impl_fn.a60)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc22_17.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.0cb)] +// CHECK:STDOUT: %Iterate.facet.loc26_19.5: %Iterate.type = facet_value %R.as_type.loc22_61.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.loc26_19.5) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.228)] +// CHECK:STDOUT: %.loc26_19.19: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet.loc26_19.5 [symbolic = %.loc26_19.19 (constants.%.bf4)] +// CHECK:STDOUT: %impl.elem2.loc26_19.2: @TestIterate.%.loc26_19.19 (%.bf4) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc26_19.2 (constants.%impl.elem2.1a5)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.4: = specific_impl_function %impl.elem2.loc26_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet.loc26_19.5) [symbolic = %specific_impl_fn.loc26_19.4 (constants.%specific_impl_fn.40d)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.f03)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.loc26_19.5) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.f8a)] -// CHECK:STDOUT: %.loc26_19.20: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc26_19.5 [symbolic = %.loc26_19.20 (constants.%.ecb)] -// CHECK:STDOUT: %impl.elem3.loc26_19.2: @TestIterate.%.loc26_19.20 (%.ecb) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc26_19.2 (constants.%impl.elem3.d3c)] -// CHECK:STDOUT: %specific_impl_fn.loc26_19.5: = specific_impl_function %impl.elem3.loc26_19.2, @Iterate.WithSelf.Next(%Iterate.facet.loc26_19.5) [symbolic = %specific_impl_fn.loc26_19.5 (constants.%specific_impl_fn.b90)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.f26)] -// CHECK:STDOUT: %.loc26_19.21: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc26_19.21 (constants.%.f38)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.02f)] -// CHECK:STDOUT: %impl.elem0.loc26_19.2: @TestIterate.%.loc26_19.21 (%.f38) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_19.2 (constants.%impl.elem0.54b)] -// CHECK:STDOUT: %specific_impl_fn.loc26_19.6: = specific_impl_function %impl.elem0.loc26_19.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc26_19.6 (constants.%specific_impl_fn.b70)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.e53)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.loc26_19.5) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.431)] +// CHECK:STDOUT: %.loc26_19.20: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc26_19.5 [symbolic = %.loc26_19.20 (constants.%.b72)] +// CHECK:STDOUT: %impl.elem3.loc26_19.2: @TestIterate.%.loc26_19.20 (%.b72) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc26_19.2 (constants.%impl.elem3.eef)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.5: = specific_impl_function %impl.elem3.loc26_19.2, @Iterate.WithSelf.Next(%Iterate.facet.loc26_19.5) [symbolic = %specific_impl_fn.loc26_19.5 (constants.%specific_impl_fn.e16)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.2e9)] +// CHECK:STDOUT: %.loc26_19.21: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc26_19.21 (constants.%.fe0)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.303)] +// CHECK:STDOUT: %impl.elem0.loc26_19.2: @TestIterate.%.loc26_19.21 (%.fe0) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_19.2 (constants.%impl.elem0.15f)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.6: = specific_impl_function %impl.elem0.loc26_19.2, @Destroy.WithSelf.Op.1(%impl.elem1) [symbolic = %specific_impl_fn.loc26_19.6 (constants.%specific_impl_fn.2a1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%r.param: @TestIterate.%R.as_type.loc22_61.1 (%R.as_type)) { // CHECK:STDOUT: !entry: @@ -3123,52 +3123,52 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.patt: %pattern_type.fb7 = value_binding_pattern i [concrete = constants.%i.patt] // CHECK:STDOUT: } // CHECK:STDOUT: %r.ref: @TestIterate.%R.as_type.loc22_61.1 (%R.as_type) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc26_19.1: @TestIterate.%.loc26_19.19 (%.41f) = impl_witness_access constants.%Iterate.lookup_impl_witness.757, element2 [symbolic = %impl.elem2.loc26_19.2 (constants.%impl.elem2.804)] +// CHECK:STDOUT: %impl.elem2.loc26_19.1: @TestIterate.%.loc26_19.19 (%.bf4) = impl_witness_access constants.%Iterate.lookup_impl_witness.0cb, element2 [symbolic = %impl.elem2.loc26_19.2 (constants.%impl.elem2.1a5)] // CHECK:STDOUT: %bound_method.loc26_19.1: = bound_method %r.ref, %impl.elem2.loc26_19.1 -// CHECK:STDOUT: %Iterate.facet.loc26_19.1: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.757) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc26_19.1: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc26_19.1 [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %Iterate.facet.loc26_19.2: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.757) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc26_19.2: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc26_19.2 [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %specific_impl_fn.loc26_19.1: = specific_impl_function %impl.elem2.loc26_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.737) [symbolic = %specific_impl_fn.loc26_19.4 (constants.%specific_impl_fn.a60)] +// CHECK:STDOUT: %Iterate.facet.loc26_19.1: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.0cb) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc26_19.1: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc26_19.1 [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %Iterate.facet.loc26_19.2: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.0cb) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc26_19.2: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc26_19.2 [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.1: = specific_impl_function %impl.elem2.loc26_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.a3a) [symbolic = %specific_impl_fn.loc26_19.4 (constants.%specific_impl_fn.40d)] // CHECK:STDOUT: %bound_method.loc26_19.2: = bound_method %r.ref, %specific_impl_fn.loc26_19.1 -// CHECK:STDOUT: %var: ref @TestIterate.%as_type (%as_type.b98) = var_storage invalid -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @TestIterate.%as_type (%as_type.b98) to %var = call %bound_method.loc26_19.2(%r.ref) +// CHECK:STDOUT: %var: ref @TestIterate.%as_type (%as_type.033) = var_storage invalid +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @TestIterate.%as_type (%as_type.033) to %var = call %bound_method.loc26_19.2(%r.ref) // CHECK:STDOUT: assign %var, %Iterate.WithSelf.NewCursor.call // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.next: -// CHECK:STDOUT: %addr: @TestIterate.%ptr (%ptr.f03) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc26_19.1: @TestIterate.%.loc26_19.20 (%.ecb) = impl_witness_access constants.%Iterate.lookup_impl_witness.757, element3 [symbolic = %impl.elem3.loc26_19.2 (constants.%impl.elem3.d3c)] +// CHECK:STDOUT: %addr: @TestIterate.%ptr (%ptr.e53) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc26_19.1: @TestIterate.%.loc26_19.20 (%.b72) = impl_witness_access constants.%Iterate.lookup_impl_witness.0cb, element3 [symbolic = %impl.elem3.loc26_19.2 (constants.%impl.elem3.eef)] // CHECK:STDOUT: %bound_method.loc26_19.3: = bound_method %r.ref, %impl.elem3.loc26_19.1 -// CHECK:STDOUT: %Iterate.facet.loc26_19.3: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.757) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc26_19.3: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc26_19.3 [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %Iterate.facet.loc26_19.4: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.757) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc26_19.4: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc26_19.4 [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.737)] -// CHECK:STDOUT: %.loc26_19.5: %Destroy.type = converted constants.%as_type.b98, constants.%impl.elem1.e8e [symbolic = %impl.elem1 (constants.%impl.elem1.e8e)] -// CHECK:STDOUT: %.loc26_19.6: %Destroy.type = converted constants.%as_type.b98, constants.%impl.elem1.e8e [symbolic = %impl.elem1 (constants.%impl.elem1.e8e)] -// CHECK:STDOUT: %specific_impl_fn.loc26_19.2: = specific_impl_function %impl.elem3.loc26_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.737) [symbolic = %specific_impl_fn.loc26_19.5 (constants.%specific_impl_fn.b90)] +// CHECK:STDOUT: %Iterate.facet.loc26_19.3: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.0cb) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc26_19.3: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc26_19.3 [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %Iterate.facet.loc26_19.4: %Iterate.type = facet_value constants.%R.as_type, (constants.%Iterate.lookup_impl_witness.0cb) [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc26_19.4: %Iterate.type = converted constants.%R.as_type, %Iterate.facet.loc26_19.4 [symbolic = %Iterate.facet.loc26_19.5 (constants.%Iterate.facet.a3a)] +// CHECK:STDOUT: %.loc26_19.5: %Destroy.type = converted constants.%as_type.033, constants.%impl.elem1.abd [symbolic = %impl.elem1 (constants.%impl.elem1.abd)] +// CHECK:STDOUT: %.loc26_19.6: %Destroy.type = converted constants.%as_type.033, constants.%impl.elem1.abd [symbolic = %impl.elem1 (constants.%impl.elem1.abd)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.2: = specific_impl_function %impl.elem3.loc26_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.a3a) [symbolic = %specific_impl_fn.loc26_19.5 (constants.%specific_impl_fn.e16)] // CHECK:STDOUT: %bound_method.loc26_19.4: = bound_method %r.ref, %specific_impl_fn.loc26_19.2 -// CHECK:STDOUT: %.loc26_19.7: ref %Optional.e07 = temporary_storage -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.e07 to %.loc26_19.7 = call %bound_method.loc26_19.4(%r.ref, %addr) -// CHECK:STDOUT: %.loc26_19.8: ref %Optional.e07 = temporary %.loc26_19.7, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc26_19.9: %Optional.HasValue.type.43a = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.HasValue.1c0] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.43a = name_ref HasValue, %.loc26_19.9 [concrete = constants.%Optional.HasValue.1c0] +// CHECK:STDOUT: %.loc26_19.7: ref %Optional.72d = temporary_storage +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.72d to %.loc26_19.7 = call %bound_method.loc26_19.4(%r.ref, %addr) +// CHECK:STDOUT: %.loc26_19.8: ref %Optional.72d = temporary %.loc26_19.7, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc26_19.9: %Optional.HasValue.type.7a6 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.HasValue.afd] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.7a6 = name_ref HasValue, %.loc26_19.9 [concrete = constants.%Optional.HasValue.afd] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc26_19.8, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.HasValue.specific_fn.0a6] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.HasValue.specific_fn.cd8] // CHECK:STDOUT: %bound_method.loc26_19.5: = bound_method %.loc26_19.8, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc26_19.10: %Optional.e07 = acquire_value %.loc26_19.8 +// CHECK:STDOUT: %.loc26_19.10: %Optional.72d = acquire_value %.loc26_19.8 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc26_19.5(%.loc26_19.10) // CHECK:STDOUT: %.loc26_19.11: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc26_19.12: bool = converted %Optional.HasValue.call, %.loc26_19.11 // CHECK:STDOUT: if %.loc26_19.12 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc26_19.13: %Optional.Get.type.a84 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.Get.4e0] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.a84 = name_ref Get, %.loc26_19.13 [concrete = constants.%Optional.Get.4e0] +// CHECK:STDOUT: %.loc26_19.13: %Optional.Get.type.65e = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.Get.ef5] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.65e = name_ref Get, %.loc26_19.13 [concrete = constants.%Optional.Get.ef5] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc26_19.8, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.Get.specific_fn.3a1] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.Get.specific_fn.1e8] // CHECK:STDOUT: %bound_method.loc26_19.6: = bound_method %.loc26_19.8, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc26_19.14: %Optional.e07 = acquire_value %.loc26_19.8 +// CHECK:STDOUT: %.loc26_19.14: %Optional.72d = acquire_value %.loc26_19.8 // CHECK:STDOUT: %Optional.Get.call: init %f64.dc1 = call %bound_method.loc26_19.6(%.loc26_19.14) // CHECK:STDOUT: %.loc26_19.15: %f64.dc1 = value_of_initializer %Optional.Get.call // CHECK:STDOUT: %.loc26_19.16: %f64.dc1 = converted %Optional.Get.call, %.loc26_19.15 @@ -3181,47 +3181,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Float.as.AddAssignWith.impl.Op(constants.%int_64) [concrete = constants.%Float.as.AddAssignWith.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc27_9.2: = bound_method %sum.ref, %specific_fn.loc27 // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc27_9.2(%sum.ref, %i.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc26_19.1: = bound_method %.loc26_19.8, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc26_19.1: init %empty_tuple.type = call %Destroy.Op.bound.loc26_19.1(%.loc26_19.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc26_19.1: = bound_method %.loc26_19.8, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc26_19.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc26_19.1(%.loc26_19.8) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc26_19.2: = bound_method %.loc26_19.8, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc26_19.2: init %empty_tuple.type = call %Destroy.Op.bound.loc26_19.2(%.loc26_19.8) -// CHECK:STDOUT: %impl.elem0.loc26_19.1: @TestIterate.%.loc26_19.21 (%.f38) = impl_witness_access constants.%Destroy.lookup_impl_witness.02f, element0 [symbolic = %impl.elem0.loc26_19.2 (constants.%impl.elem0.54b)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc26_19.2: = bound_method %.loc26_19.8, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc26_19.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc26_19.2(%.loc26_19.8) +// CHECK:STDOUT: %impl.elem0.loc26_19.1: @TestIterate.%.loc26_19.21 (%.fe0) = impl_witness_access constants.%Destroy.lookup_impl_witness.303, element0 [symbolic = %impl.elem0.loc26_19.2 (constants.%impl.elem0.15f)] // CHECK:STDOUT: %bound_method.loc26_19.7: = bound_method %var, %impl.elem0.loc26_19.1 -// CHECK:STDOUT: %.loc26_19.17: %Destroy.type = converted constants.%as_type.b98, constants.%impl.elem1.e8e [symbolic = %impl.elem1 (constants.%impl.elem1.e8e)] -// CHECK:STDOUT: %.loc26_19.18: %Destroy.type = converted constants.%as_type.b98, constants.%impl.elem1.e8e [symbolic = %impl.elem1 (constants.%impl.elem1.e8e)] -// CHECK:STDOUT: %specific_impl_fn.loc26_19.3: = specific_impl_function %impl.elem0.loc26_19.1, @Destroy.WithSelf.Op(constants.%impl.elem1.e8e) [symbolic = %specific_impl_fn.loc26_19.6 (constants.%specific_impl_fn.b70)] +// CHECK:STDOUT: %.loc26_19.17: %Destroy.type = converted constants.%as_type.033, constants.%impl.elem1.abd [symbolic = %impl.elem1 (constants.%impl.elem1.abd)] +// CHECK:STDOUT: %.loc26_19.18: %Destroy.type = converted constants.%as_type.033, constants.%impl.elem1.abd [symbolic = %impl.elem1 (constants.%impl.elem1.abd)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.3: = specific_impl_function %impl.elem0.loc26_19.1, @Destroy.WithSelf.Op.1(constants.%impl.elem1.abd) [symbolic = %specific_impl_fn.loc26_19.6 (constants.%specific_impl_fn.2a1)] // CHECK:STDOUT: %bound_method.loc26_19.8: = bound_method %var, %specific_impl_fn.loc26_19.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc26_19.8(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc26_19.3: init %empty_tuple.type = call %bound_method.loc26_19.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.1(%self.param: ref %.cc0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.1(%self.param: ref %.cc0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.2(%self.param: ref %MaybeUnformed.b7e) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.2(%self.param: ref %MaybeUnformed.5b0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.3(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.3(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.4(%self.param: ref %struct_type.value.has_value.ad9) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.4(%self.param: ref %struct_type.value.has_value.a24) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.5(%self.param: ref %DefaultOptionalStorage.8c0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.5(%self.param: ref %DefaultOptionalStorage.a3f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.6(%self.param: ref %Optional.e07) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_19.6(%self.param: ref %Optional.72d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3233,13 +3233,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.patt: %pattern_type.fb7 = value_binding_pattern i [concrete = constants.%i.patt] // CHECK:STDOUT: } // CHECK:STDOUT: %m.ref: ref %MutableRange = name_ref m, %m -// CHECK:STDOUT: %impl.elem2: %.534 = impl_witness_access constants.%Iterate.impl_witness.15e, element2 [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.f6c] +// CHECK:STDOUT: %impl.elem2: %.d89 = impl_witness_access constants.%Iterate.impl_witness.083, element2 [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.d12] // CHECK:STDOUT: %bound_method.loc68_19.1: = bound_method %m.ref, %impl.elem2 -// CHECK:STDOUT: %facet_value.loc68_19.1: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.902, constants.%custom_witness.c08, constants.%custom_witness.05b, constants.%custom_witness.491, constants.%custom_witness.ed8) [concrete = constants.%facet_value.bed] -// CHECK:STDOUT: %.loc68_19.1: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc68_19.1 [concrete = constants.%facet_value.bed] -// CHECK:STDOUT: %facet_value.loc68_19.2: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.902, constants.%custom_witness.c08, constants.%custom_witness.05b, constants.%custom_witness.491, constants.%custom_witness.ed8) [concrete = constants.%facet_value.bed] -// CHECK:STDOUT: %.loc68_19.2: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc68_19.2 [concrete = constants.%facet_value.bed] -// CHECK:STDOUT: %specific_fn.loc68_19.1: = specific_function %impl.elem2, @T.as_type.as.Iterate.impl.NewCursor(constants.%facet_value.bed) [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn] +// CHECK:STDOUT: %facet_value.loc68_19.1: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.6c4ec3.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.902, constants.%custom_witness.c08, constants.%custom_witness.05b, constants.%custom_witness.491, constants.%custom_witness.ed8) [concrete = constants.%facet_value.ca9] +// CHECK:STDOUT: %.loc68_19.1: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc68_19.1 [concrete = constants.%facet_value.ca9] +// CHECK:STDOUT: %facet_value.loc68_19.2: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.6c4ec3.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.902, constants.%custom_witness.c08, constants.%custom_witness.05b, constants.%custom_witness.491, constants.%custom_witness.ed8) [concrete = constants.%facet_value.ca9] +// CHECK:STDOUT: %.loc68_19.2: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc68_19.2 [concrete = constants.%facet_value.ca9] +// CHECK:STDOUT: %specific_fn.loc68_19.1: = specific_function %impl.elem2, @T.as_type.as.Iterate.impl.NewCursor(constants.%facet_value.ca9) [concrete = constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc68_19.2: = bound_method %m.ref, %specific_fn.loc68_19.1 // CHECK:STDOUT: %var: ref %tuple.type.dd0 = var_storage invalid // CHECK:STDOUT: %.loc68_18.1: %MutableRange = acquire_value %m.ref @@ -3249,36 +3249,36 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr: %ptr.a4f = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.8b9 = impl_witness_access constants.%Iterate.impl_witness.15e, element3 [concrete = constants.%T.as_type.as.Iterate.impl.Next.630] +// CHECK:STDOUT: %impl.elem3: %.6e6 = impl_witness_access constants.%Iterate.impl_witness.083, element3 [concrete = constants.%T.as_type.as.Iterate.impl.Next.e47] // CHECK:STDOUT: %bound_method.loc68_19.3: = bound_method %m.ref, %impl.elem3 -// CHECK:STDOUT: %facet_value.loc68_19.3: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.902, constants.%custom_witness.c08, constants.%custom_witness.05b, constants.%custom_witness.491, constants.%custom_witness.ed8) [concrete = constants.%facet_value.bed] -// CHECK:STDOUT: %.loc68_19.3: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc68_19.3 [concrete = constants.%facet_value.bed] -// CHECK:STDOUT: %facet_value.loc68_19.4: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.df9cc1.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.902, constants.%custom_witness.c08, constants.%custom_witness.05b, constants.%custom_witness.491, constants.%custom_witness.ed8) [concrete = constants.%facet_value.bed] -// CHECK:STDOUT: %.loc68_19.4: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc68_19.4 [concrete = constants.%facet_value.bed] -// CHECK:STDOUT: %specific_fn.loc68_19.2: = specific_function %impl.elem3, @T.as_type.as.Iterate.impl.Next(constants.%facet_value.bed) [concrete = constants.%T.as_type.as.Iterate.impl.Next.specific_fn] +// CHECK:STDOUT: %facet_value.loc68_19.3: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.6c4ec3.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.902, constants.%custom_witness.c08, constants.%custom_witness.05b, constants.%custom_witness.491, constants.%custom_witness.ed8) [concrete = constants.%facet_value.ca9] +// CHECK:STDOUT: %.loc68_19.3: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc68_19.3 [concrete = constants.%facet_value.ca9] +// CHECK:STDOUT: %facet_value.loc68_19.4: %CppRange_where.type.d682d6.1 = facet_value constants.%MutableRange, (constants.%custom_witness.6c4ec3.3, constants.%Copy.impl_witness.0d6, constants.%custom_witness.902, constants.%custom_witness.c08, constants.%custom_witness.05b, constants.%custom_witness.491, constants.%custom_witness.ed8) [concrete = constants.%facet_value.ca9] +// CHECK:STDOUT: %.loc68_19.4: %CppRange_where.type.d682d6.1 = converted constants.%MutableRange, %facet_value.loc68_19.4 [concrete = constants.%facet_value.ca9] +// CHECK:STDOUT: %specific_fn.loc68_19.2: = specific_function %impl.elem3, @T.as_type.as.Iterate.impl.Next(constants.%facet_value.ca9) [concrete = constants.%T.as_type.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc68_19.4: = bound_method %m.ref, %specific_fn.loc68_19.2 -// CHECK:STDOUT: %.loc68_19.5: ref %Optional.e07 = temporary_storage +// CHECK:STDOUT: %.loc68_19.5: ref %Optional.72d = temporary_storage // CHECK:STDOUT: %.loc68_18.2: %MutableRange = acquire_value %m.ref -// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.call: init %Optional.e07 to %.loc68_19.5 = call %bound_method.loc68_19.4(%.loc68_18.2, %addr) -// CHECK:STDOUT: %.loc68_19.6: ref %Optional.e07 = temporary %.loc68_19.5, %T.as_type.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc68_19.7: %Optional.HasValue.type.43a = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.HasValue.1c0] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.43a = name_ref HasValue, %.loc68_19.7 [concrete = constants.%Optional.HasValue.1c0] +// CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.call: init %Optional.72d to %.loc68_19.5 = call %bound_method.loc68_19.4(%.loc68_18.2, %addr) +// CHECK:STDOUT: %.loc68_19.6: ref %Optional.72d = temporary %.loc68_19.5, %T.as_type.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc68_19.7: %Optional.HasValue.type.7a6 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.HasValue.afd] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.7a6 = name_ref HasValue, %.loc68_19.7 [concrete = constants.%Optional.HasValue.afd] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc68_19.6, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.HasValue.specific_fn.0a6] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.HasValue.specific_fn.cd8] // CHECK:STDOUT: %bound_method.loc68_19.5: = bound_method %.loc68_19.6, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc68_19.8: %Optional.e07 = acquire_value %.loc68_19.6 +// CHECK:STDOUT: %.loc68_19.8: %Optional.72d = acquire_value %.loc68_19.6 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc68_19.5(%.loc68_19.8) // CHECK:STDOUT: %.loc68_19.9: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc68_19.10: bool = converted %Optional.HasValue.call, %.loc68_19.9 // CHECK:STDOUT: if %.loc68_19.10 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc68_19.11: %Optional.Get.type.a84 = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.Get.4e0] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.a84 = name_ref Get, %.loc68_19.11 [concrete = constants.%Optional.Get.4e0] +// CHECK:STDOUT: %.loc68_19.11: %Optional.Get.type.65e = specific_constant imports.%Core.import_ref.dab, @Optional(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.Get.ef5] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.65e = name_ref Get, %.loc68_19.11 [concrete = constants.%Optional.Get.ef5] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc68_19.6, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.4d5) [concrete = constants.%Optional.Get.specific_fn.3a1] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.1e4) [concrete = constants.%Optional.Get.specific_fn.1e8] // CHECK:STDOUT: %bound_method.loc68_19.6: = bound_method %.loc68_19.6, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc68_19.12: %Optional.e07 = acquire_value %.loc68_19.6 +// CHECK:STDOUT: %.loc68_19.12: %Optional.72d = acquire_value %.loc68_19.6 // CHECK:STDOUT: %Optional.Get.call: init %f64.dc1 = call %bound_method.loc68_19.6(%.loc68_19.12) // CHECK:STDOUT: %.loc68_19.13: %f64.dc1 = value_of_initializer %Optional.Get.call // CHECK:STDOUT: %.loc68_19.14: %f64.dc1 = converted %Optional.Get.call, %.loc68_19.13 @@ -3291,15 +3291,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %specific_fn.loc69: = specific_function %impl.elem0.loc69, @Float.as.AddAssignWith.impl.Op(constants.%int_64) [concrete = constants.%Float.as.AddAssignWith.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc69_9.2: = bound_method %sum.ref, %specific_fn.loc69 // CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc69_9.2(%sum.ref, %i.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc68_19.1: = bound_method %.loc68_19.6, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc68_19.1: init %empty_tuple.type = call %Destroy.Op.bound.loc68_19.1(%.loc68_19.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc68_19.1: = bound_method %.loc68_19.6, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc68_19.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc68_19.1(%.loc68_19.6) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc68_19.2: = bound_method %.loc68_19.6, constants.%Destroy.Op.1a2547.9 -// CHECK:STDOUT: %Destroy.Op.call.loc68_19.2: init %empty_tuple.type = call %Destroy.Op.bound.loc68_19.2(%.loc68_19.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc68_19.3: = bound_method %var, constants.%Destroy.Op.1a2547.10 -// CHECK:STDOUT: %Destroy.Op.call.loc68_19.3: init %empty_tuple.type = call %Destroy.Op.bound.loc68_19.3(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc68_19.2: = bound_method %.loc68_19.6, constants.%Destroy.WithSelf.Op.403171.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc68_19.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc68_19.2(%.loc68_19.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc68_19.3: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc68_19.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc68_19.3(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3307,14 +3307,14 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %R.patt.loc22_17.2 => constants.%R.patt // CHECK:STDOUT: %R.loc22_17.1 => constants.%R // CHECK:STDOUT: %R.as_type.loc22_61.1 => constants.%R.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d35 -// CHECK:STDOUT: %r.param_patt.loc22_59.2 => constants.%r.param_patt.bc2 -// CHECK:STDOUT: %r.patt.loc22_59.2 => constants.%r.patt.47e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.15f +// CHECK:STDOUT: %r.param_patt.loc22_59.2 => constants.%r.param_patt.f80 +// CHECK:STDOUT: %r.patt.loc22_59.2 => constants.%r.patt.fdd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestIterate(constants.%facet_value.6bc) { +// CHECK:STDOUT: specific @TestIterate(constants.%facet_value.f44) { // CHECK:STDOUT: %R.patt.loc22_17.2 => constants.%R.patt -// CHECK:STDOUT: %R.loc22_17.1 => constants.%facet_value.6bc +// CHECK:STDOUT: %R.loc22_17.1 => constants.%facet_value.f44 // CHECK:STDOUT: %R.as_type.loc22_61.1 => constants.%MutableRange // CHECK:STDOUT: %pattern_type => constants.%pattern_type.992 // CHECK:STDOUT: %r.param_patt.loc22_59.2 => constants.%r.param_patt.aeb @@ -3322,25 +3322,25 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc22 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.15e -// CHECK:STDOUT: %Iterate.facet.loc26_19.5 => constants.%Iterate.facet.24a -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.4f1 -// CHECK:STDOUT: %.loc26_19.19 => constants.%.534 -// CHECK:STDOUT: %impl.elem2.loc26_19.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.f6c +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.083 +// CHECK:STDOUT: %Iterate.facet.loc26_19.5 => constants.%Iterate.facet.1aa +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.ee3 +// CHECK:STDOUT: %.loc26_19.19 => constants.%.d89 +// CHECK:STDOUT: %impl.elem2.loc26_19.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.d12 // CHECK:STDOUT: %specific_impl_fn.loc26_19.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.e1e +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.193 // CHECK:STDOUT: %as_type => constants.%tuple.type.dd0 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.843 // CHECK:STDOUT: %ptr => constants.%ptr.a4f -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.e92 -// CHECK:STDOUT: %.loc26_19.20 => constants.%.8b9 -// CHECK:STDOUT: %impl.elem3.loc26_19.2 => constants.%T.as_type.as.Iterate.impl.Next.630 +// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.ab1 +// CHECK:STDOUT: %.loc26_19.20 => constants.%.6e6 +// CHECK:STDOUT: %impl.elem3.loc26_19.2 => constants.%T.as_type.as.Iterate.impl.Next.e47 // CHECK:STDOUT: %specific_impl_fn.loc26_19.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.452 -// CHECK:STDOUT: %.loc26_19.21 => constants.%.899 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.10 -// CHECK:STDOUT: %impl.elem0.loc26_19.2 => constants.%Destroy.Op.1a2547.10 -// CHECK:STDOUT: %specific_impl_fn.loc26_19.6 => constants.%Destroy.Op.1a2547.10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ada +// CHECK:STDOUT: %.loc26_19.21 => constants.%.183 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.10 +// CHECK:STDOUT: %impl.elem0.loc26_19.2 => constants.%Destroy.WithSelf.Op.403171.10 +// CHECK:STDOUT: %specific_impl_fn.loc26_19.6 => constants.%Destroy.WithSelf.Op.403171.10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adl_returns_different_types.carbon @@ -3446,13 +3446,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Optional.Get.specific_fn.5ce: = specific_function %Optional.Get.4e3, @Optional.Get(%OptionalStorage.facet.b3f) [concrete] // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.type: type = fn_type @operator_PlusEqual__carbon_thunk [concrete] // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk: %operator_PlusEqual__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc31_37.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc31_37.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness.3ea: = lookup_impl_witness %impl.elem1.75b, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.696: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.75b) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.696: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1.75b) [symbolic] // CHECK:STDOUT: %.fbd: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.696, %impl.elem1.75b [symbolic] // CHECK:STDOUT: %impl.elem0.bb2: %.fbd = impl_witness_access %Destroy.lookup_impl_witness.3ea, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.fa3: = specific_impl_function %impl.elem0.bb2, @Destroy.WithSelf.Op(%impl.elem1.75b) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.fa3: = specific_impl_function %impl.elem0.bb2, @Destroy.WithSelf.Op.1(%impl.elem1.75b) [symbolic] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] // CHECK:STDOUT: %pattern_type.c1d: type = pattern_type %ConstRange [concrete] // CHECK:STDOUT: %Iterator: type = class_type @Iterator.1 [concrete] @@ -3481,10 +3481,10 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %custom_witness.a147d4.2: = custom_witness (%Sentinel.Op), @Destroy [concrete] // CHECK:STDOUT: %facet_value.289: %CppRange_where.type.d682d6.1 = facet_value %ConstRange, (%custom_witness.c4c, %custom_witness.202, %custom_witness.116, %custom_witness.a147d4.1, %custom_witness.5be, %custom_witness.c31, %custom_witness.e21, %custom_witness.a147d4.2) [concrete] // CHECK:STDOUT: %tuple.type.7a6: type = tuple_type (%Iterator, %Sentinel) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.8: = custom_witness (%Destroy.Op.1a2547.8), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.2fb: %Destroy.type = facet_value %tuple.type.7a6, (%custom_witness.df9cc1.8) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.8: type = fn_type @Destroy.WithSelf.Op.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.8: %Destroy.WithSelf.Op.type.ef016f.8 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.8: = custom_witness (%Destroy.WithSelf.Op.403171.8), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.9e5: %Destroy.type = facet_value %tuple.type.7a6, (%custom_witness.6c4ec3.8) [concrete] // CHECK:STDOUT: %Iterate.impl_witness.6f6: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.289) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.0fb: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.289) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.126: %T.as_type.as.Iterate.impl.NewCursor.type.0fb = struct_value () [concrete] @@ -3501,8 +3501,8 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %ptr.d33: type = ptr_type %tuple.type.7a6 [concrete] // CHECK:STDOUT: %.eab: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.01e, %Iterate.facet.8d2 [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %T.as_type.as.Iterate.impl.Next.c7f, @T.as_type.as.Iterate.impl.Next(%facet_value.289) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2d5: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.2fb) [concrete] -// CHECK:STDOUT: %.b07: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.2d5, %Destroy.facet.2fb [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.085: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.9e5) [concrete] +// CHECK:STDOUT: %.83b: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.085, %Destroy.facet.9e5 [concrete] // CHECK:STDOUT: %complete_type.cf0: = complete_type_witness %tuple.type.7a6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3561,11 +3561,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc31_37.21: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc31_37.5 [symbolic = %.loc31_37.21 (constants.%.493)] // CHECK:STDOUT: %impl.elem3.loc31_37.2: @TestIterate.%.loc31_37.21 (%.493) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc31_37.2 (constants.%impl.elem3.e03)] // CHECK:STDOUT: %specific_impl_fn.loc31_37.5: = specific_impl_function %impl.elem3.loc31_37.2, @Iterate.WithSelf.Next(%Iterate.facet.loc31_37.5) [symbolic = %specific_impl_fn.loc31_37.5 (constants.%specific_impl_fn.80c)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.696)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.696)] // CHECK:STDOUT: %.loc31_37.22: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc31_37.22 (constants.%.fbd)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.3ea)] // CHECK:STDOUT: %impl.elem0.loc31_37.2: @TestIterate.%.loc31_37.22 (%.fbd) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc31_37.2 (constants.%impl.elem0.bb2)] -// CHECK:STDOUT: %specific_impl_fn.loc31_37.6: = specific_impl_function %impl.elem0.loc31_37.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc31_37.6 (constants.%specific_impl_fn.fa3)] +// CHECK:STDOUT: %specific_impl_fn.loc31_37.6: = specific_impl_function %impl.elem0.loc31_37.2, @Destroy.WithSelf.Op.1(%impl.elem1) [symbolic = %specific_impl_fn.loc31_37.6 (constants.%specific_impl_fn.fa3)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%r.param: @TestIterate.%R.as_type.loc27_79.1 (%R.as_type)) { // CHECK:STDOUT: !entry: @@ -3641,47 +3641,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref.loc31: %ValueType.cpp_destructor.type = name_ref Op, imports.%ValueType.cpp_destructor.decl [concrete = constants.%ValueType.cpp_destructor] // CHECK:STDOUT: %ValueType.cpp_destructor.bound.loc31: = bound_method %.loc31_37.16, %Op.ref.loc31 // CHECK:STDOUT: %ValueType.cpp_destructor.call.loc31: init %empty_tuple.type = call %ValueType.cpp_destructor.bound.loc31(%.loc31_37.16) -// CHECK:STDOUT: %Destroy.Op.bound.loc31_37.1: = bound_method %.loc31_37.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc31_37.1: init %empty_tuple.type = call %Destroy.Op.bound.loc31_37.1(%.loc31_37.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc31_37.1: = bound_method %.loc31_37.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc31_37.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc31_37.1(%.loc31_37.8) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc31_37.2: = bound_method %.loc31_37.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc31_37.2: init %empty_tuple.type = call %Destroy.Op.bound.loc31_37.2(%.loc31_37.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc31_37.2: = bound_method %.loc31_37.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc31_37.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc31_37.2(%.loc31_37.8) // CHECK:STDOUT: %impl.elem0.loc31_37.1: @TestIterate.%.loc31_37.22 (%.fbd) = impl_witness_access constants.%Destroy.lookup_impl_witness.3ea, element0 [symbolic = %impl.elem0.loc31_37.2 (constants.%impl.elem0.bb2)] // CHECK:STDOUT: %bound_method.loc31_37.7: = bound_method %var, %impl.elem0.loc31_37.1 // CHECK:STDOUT: %.loc31_37.18: %Destroy.type = converted constants.%as_type.aee, constants.%impl.elem1.75b [symbolic = %impl.elem1 (constants.%impl.elem1.75b)] // CHECK:STDOUT: %.loc31_37.19: %Destroy.type = converted constants.%as_type.aee, constants.%impl.elem1.75b [symbolic = %impl.elem1 (constants.%impl.elem1.75b)] -// CHECK:STDOUT: %specific_impl_fn.loc31_37.3: = specific_impl_function %impl.elem0.loc31_37.1, @Destroy.WithSelf.Op(constants.%impl.elem1.75b) [symbolic = %specific_impl_fn.loc31_37.6 (constants.%specific_impl_fn.fa3)] +// CHECK:STDOUT: %specific_impl_fn.loc31_37.3: = specific_impl_function %impl.elem0.loc31_37.1, @Destroy.WithSelf.Op.1(constants.%impl.elem1.75b) [symbolic = %specific_impl_fn.loc31_37.6 (constants.%specific_impl_fn.fa3)] // CHECK:STDOUT: %bound_method.loc31_37.8: = bound_method %var, %specific_impl_fn.loc31_37.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc31_37.8(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc31_37.3: init %empty_tuple.type = call %bound_method.loc31_37.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_37.1(%self.param: ref %.be1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_37.1(%self.param: ref %.be1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_37.2(%self.param: ref %MaybeUnformed.e16) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_37.2(%self.param: ref %MaybeUnformed.e16) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_37.3(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_37.3(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_37.4(%self.param: ref %struct_type.value.has_value.baa) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_37.4(%self.param: ref %struct_type.value.has_value.baa) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_37.5(%self.param: ref %DefaultOptionalStorage.8b2) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_37.5(%self.param: ref %DefaultOptionalStorage.8b2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_37.6(%self.param: ref %Optional.a40) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_37.6(%self.param: ref %Optional.a40) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3758,15 +3758,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref.loc45: %ValueType.cpp_destructor.type = name_ref Op, imports.%ValueType.cpp_destructor.decl [concrete = constants.%ValueType.cpp_destructor] // CHECK:STDOUT: %ValueType.cpp_destructor.bound.loc45: = bound_method %.loc45_37.14, %Op.ref.loc45 // CHECK:STDOUT: %ValueType.cpp_destructor.call.loc45: init %empty_tuple.type = call %ValueType.cpp_destructor.bound.loc45(%.loc45_37.14) -// CHECK:STDOUT: %Destroy.Op.bound.loc45_37.1: = bound_method %.loc45_37.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc45_37.1: init %empty_tuple.type = call %Destroy.Op.bound.loc45_37.1(%.loc45_37.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc45_37.1: = bound_method %.loc45_37.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc45_37.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc45_37.1(%.loc45_37.6) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc45_37.2: = bound_method %.loc45_37.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc45_37.2: init %empty_tuple.type = call %Destroy.Op.bound.loc45_37.2(%.loc45_37.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc45_37.3: = bound_method %var, constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %Destroy.Op.call.loc45_37.3: init %empty_tuple.type = call %Destroy.Op.bound.loc45_37.3(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc45_37.2: = bound_method %.loc45_37.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc45_37.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc45_37.2(%.loc45_37.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc45_37.3: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc45_37.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc45_37.3(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3795,7 +3795,7 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc31_37.20 => constants.%.a1c // CHECK:STDOUT: %impl.elem2.loc31_37.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.126 // CHECK:STDOUT: %specific_impl_fn.loc31_37.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.2fb +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.9e5 // CHECK:STDOUT: %as_type => constants.%tuple.type.7a6 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.cf0 // CHECK:STDOUT: %ptr => constants.%ptr.d33 @@ -3803,11 +3803,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc31_37.21 => constants.%.eab // CHECK:STDOUT: %impl.elem3.loc31_37.2 => constants.%T.as_type.as.Iterate.impl.Next.c7f // CHECK:STDOUT: %specific_impl_fn.loc31_37.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2d5 -// CHECK:STDOUT: %.loc31_37.22 => constants.%.b07 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.8 -// CHECK:STDOUT: %impl.elem0.loc31_37.2 => constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %specific_impl_fn.loc31_37.6 => constants.%Destroy.Op.1a2547.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.085 +// CHECK:STDOUT: %.loc31_37.22 => constants.%.83b +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.8 +// CHECK:STDOUT: %impl.elem0.loc31_37.2 => constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %specific_impl_fn.loc31_37.6 => constants.%Destroy.WithSelf.Op.403171.8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_adl_returns_different_types_mutable.carbon @@ -3884,13 +3884,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.6fd, @Optional.Get(%OptionalStorage.facet.19b) [concrete] // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.type: type = fn_type @operator_PlusEqual__carbon_thunk [concrete] // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk: %operator_PlusEqual__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc31_44.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc31_44.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness.80c: = lookup_impl_witness %impl.elem1.127, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.678: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.127) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.678: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1.127) [symbolic] // CHECK:STDOUT: %.195: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.678, %impl.elem1.127 [symbolic] // CHECK:STDOUT: %impl.elem0.d51: %.195 = impl_witness_access %Destroy.lookup_impl_witness.80c, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.9d5: = specific_impl_function %impl.elem0.d51, @Destroy.WithSelf.Op(%impl.elem1.127) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.9d5: = specific_impl_function %impl.elem0.d51, @Destroy.WithSelf.Op.1(%impl.elem1.127) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3944,11 +3944,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc31_44.21: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc31_44.5 [symbolic = %.loc31_44.21 (constants.%.25b)] // CHECK:STDOUT: %impl.elem3.loc31_44.2: @TestIterate.%.loc31_44.21 (%.25b) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc31_44.2 (constants.%impl.elem3.9e9)] // CHECK:STDOUT: %specific_impl_fn.loc31_44.5: = specific_impl_function %impl.elem3.loc31_44.2, @Iterate.WithSelf.Next(%Iterate.facet.loc31_44.5) [symbolic = %specific_impl_fn.loc31_44.5 (constants.%specific_impl_fn.ee9)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.678)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.678)] // CHECK:STDOUT: %.loc31_44.22: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc31_44.22 (constants.%.195)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.80c)] // CHECK:STDOUT: %impl.elem0.loc31_44.2: @TestIterate.%.loc31_44.22 (%.195) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc31_44.2 (constants.%impl.elem0.d51)] -// CHECK:STDOUT: %specific_impl_fn.loc31_44.6: = specific_impl_function %impl.elem0.loc31_44.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc31_44.6 (constants.%specific_impl_fn.9d5)] +// CHECK:STDOUT: %specific_impl_fn.loc31_44.6: = specific_impl_function %impl.elem0.loc31_44.2, @Destroy.WithSelf.Op.1(%impl.elem1) [symbolic = %specific_impl_fn.loc31_44.6 (constants.%specific_impl_fn.9d5)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%r.param: @TestIterate.%R.as_type.loc27_86.1 (%R.as_type)) { // CHECK:STDOUT: !entry: @@ -4024,47 +4024,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref.loc31: %ValueType.cpp_destructor.type = name_ref Op, imports.%ValueType.cpp_destructor.decl [concrete = constants.%ValueType.cpp_destructor] // CHECK:STDOUT: %ValueType.cpp_destructor.bound.loc31: = bound_method %.loc31_44.16, %Op.ref.loc31 // CHECK:STDOUT: %ValueType.cpp_destructor.call.loc31: init %empty_tuple.type = call %ValueType.cpp_destructor.bound.loc31(%.loc31_44.16) -// CHECK:STDOUT: %Destroy.Op.bound.loc31_44.1: = bound_method %.loc31_44.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc31_44.1: init %empty_tuple.type = call %Destroy.Op.bound.loc31_44.1(%.loc31_44.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc31_44.1: = bound_method %.loc31_44.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc31_44.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc31_44.1(%.loc31_44.8) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc31_44.2: = bound_method %.loc31_44.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc31_44.2: init %empty_tuple.type = call %Destroy.Op.bound.loc31_44.2(%.loc31_44.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc31_44.2: = bound_method %.loc31_44.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc31_44.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc31_44.2(%.loc31_44.8) // CHECK:STDOUT: %impl.elem0.loc31_44.1: @TestIterate.%.loc31_44.22 (%.195) = impl_witness_access constants.%Destroy.lookup_impl_witness.80c, element0 [symbolic = %impl.elem0.loc31_44.2 (constants.%impl.elem0.d51)] // CHECK:STDOUT: %bound_method.loc31_44.7: = bound_method %var, %impl.elem0.loc31_44.1 // CHECK:STDOUT: %.loc31_44.18: %Destroy.type = converted constants.%as_type.d08, constants.%impl.elem1.127 [symbolic = %impl.elem1 (constants.%impl.elem1.127)] // CHECK:STDOUT: %.loc31_44.19: %Destroy.type = converted constants.%as_type.d08, constants.%impl.elem1.127 [symbolic = %impl.elem1 (constants.%impl.elem1.127)] -// CHECK:STDOUT: %specific_impl_fn.loc31_44.3: = specific_impl_function %impl.elem0.loc31_44.1, @Destroy.WithSelf.Op(constants.%impl.elem1.127) [symbolic = %specific_impl_fn.loc31_44.6 (constants.%specific_impl_fn.9d5)] +// CHECK:STDOUT: %specific_impl_fn.loc31_44.3: = specific_impl_function %impl.elem0.loc31_44.1, @Destroy.WithSelf.Op.1(constants.%impl.elem1.127) [symbolic = %specific_impl_fn.loc31_44.6 (constants.%specific_impl_fn.9d5)] // CHECK:STDOUT: %bound_method.loc31_44.8: = bound_method %var, %specific_impl_fn.loc31_44.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc31_44.8(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc31_44.3: init %empty_tuple.type = call %bound_method.loc31_44.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_44.1(%self.param: ref %.dd1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_44.1(%self.param: ref %.dd1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_44.2(%self.param: ref %MaybeUnformed.09f) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_44.2(%self.param: ref %MaybeUnformed.09f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_44.3(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_44.3(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_44.4(%self.param: ref %struct_type.value.has_value.d6e) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_44.4(%self.param: ref %struct_type.value.has_value.d6e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_44.5(%self.param: ref %DefaultOptionalStorage.d67) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_44.5(%self.param: ref %DefaultOptionalStorage.d67) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_44.6(%self.param: ref %Optional.40d) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc31_44.6(%self.param: ref %Optional.40d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -4213,13 +4213,13 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Optional.Get.specific_fn.d62: = specific_function %Optional.Get.323, @Optional.Get(%OptionalStorage.facet.33d) [concrete] // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.type: type = fn_type @operator_PlusEqual__carbon_thunk [concrete] // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk: %operator_PlusEqual__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc38_41.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc38_41.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness.95e: = lookup_impl_witness %impl.elem1.9b3, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.223: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.9b3) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.223: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1.9b3) [symbolic] // CHECK:STDOUT: %.32e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.223, %impl.elem1.9b3 [symbolic] // CHECK:STDOUT: %impl.elem0.87c: %.32e = impl_witness_access %Destroy.lookup_impl_witness.95e, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.65a: = specific_impl_function %impl.elem0.87c, @Destroy.WithSelf.Op(%impl.elem1.9b3) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.65a: = specific_impl_function %impl.elem0.87c, @Destroy.WithSelf.Op.1(%impl.elem1.9b3) [symbolic] // CHECK:STDOUT: %MutableAndConstRange: type = class_type @MutableAndConstRange [concrete] // CHECK:STDOUT: %pattern_type.fdb: type = pattern_type %MutableAndConstRange [concrete] // CHECK:STDOUT: %Iterator: type = class_type @Iterator.1 [concrete] @@ -4244,10 +4244,10 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %custom_witness.2ef: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] // CHECK:STDOUT: %facet_value.94c: %CppRange_where.type.d682d6.1 = facet_value %MutableAndConstRange, (%custom_witness.ca2, %custom_witness.1c5, %custom_witness.660, %custom_witness.a79, %custom_witness.d56, %custom_witness.68a, %custom_witness.2ef) [concrete] // CHECK:STDOUT: %tuple.type.de6: type = tuple_type (%Iterator, %Iterator) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9cc1.8: = custom_witness (%Destroy.Op.1a2547.8), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.84a: %Destroy.type = facet_value %tuple.type.de6, (%custom_witness.df9cc1.8) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.8: type = fn_type @Destroy.WithSelf.Op.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.8: %Destroy.WithSelf.Op.type.ef016f.8 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4ec3.8: = custom_witness (%Destroy.WithSelf.Op.403171.8), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.fb2: %Destroy.type = facet_value %tuple.type.de6, (%custom_witness.6c4ec3.8) [concrete] // CHECK:STDOUT: %Iterate.impl_witness.e93: = impl_witness imports.%Iterate.impl_witness_table.121, @T.as_type.as.Iterate.impl(%facet_value.94c) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.type.c35: type = fn_type @T.as_type.as.Iterate.impl.NewCursor, @T.as_type.as.Iterate.impl(%facet_value.94c) [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.NewCursor.237: %T.as_type.as.Iterate.impl.NewCursor.type.c35 = struct_value () [concrete] @@ -4264,8 +4264,8 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %ptr.b95: type = ptr_type %tuple.type.de6 [concrete] // CHECK:STDOUT: %.d53: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.4a6, %Iterate.facet.c00 [concrete] // CHECK:STDOUT: %T.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %T.as_type.as.Iterate.impl.Next.1b2, @T.as_type.as.Iterate.impl.Next(%facet_value.94c) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.544: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.84a) [concrete] -// CHECK:STDOUT: %.a9c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.544, %Destroy.facet.84a [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.b34: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.fb2) [concrete] +// CHECK:STDOUT: %.d72: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.b34, %Destroy.facet.fb2 [concrete] // CHECK:STDOUT: %complete_type.95d: = complete_type_witness %tuple.type.de6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -4324,11 +4324,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc38_41.21: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet.loc38_41.5 [symbolic = %.loc38_41.21 (constants.%.8ee)] // CHECK:STDOUT: %impl.elem3.loc38_41.2: @TestIterate.%.loc38_41.21 (%.8ee) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc38_41.2 (constants.%impl.elem3.65d)] // CHECK:STDOUT: %specific_impl_fn.loc38_41.5: = specific_impl_function %impl.elem3.loc38_41.2, @Iterate.WithSelf.Next(%Iterate.facet.loc38_41.5) [symbolic = %specific_impl_fn.loc38_41.5 (constants.%specific_impl_fn.30e)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.223)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%impl.elem1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.223)] // CHECK:STDOUT: %.loc38_41.22: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc38_41.22 (constants.%.32e)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.95e)] // CHECK:STDOUT: %impl.elem0.loc38_41.2: @TestIterate.%.loc38_41.22 (%.32e) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc38_41.2 (constants.%impl.elem0.87c)] -// CHECK:STDOUT: %specific_impl_fn.loc38_41.6: = specific_impl_function %impl.elem0.loc38_41.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc38_41.6 (constants.%specific_impl_fn.65a)] +// CHECK:STDOUT: %specific_impl_fn.loc38_41.6: = specific_impl_function %impl.elem0.loc38_41.2, @Destroy.WithSelf.Op.1(%impl.elem1) [symbolic = %specific_impl_fn.loc38_41.6 (constants.%specific_impl_fn.65a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%r.param: @TestIterate.%R.as_type.loc34_83.1 (%R.as_type)) { // CHECK:STDOUT: !entry: @@ -4404,47 +4404,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref.loc38: %ValueType.cpp_destructor.type = name_ref Op, imports.%ValueType.cpp_destructor.decl [concrete = constants.%ValueType.cpp_destructor] // CHECK:STDOUT: %ValueType.cpp_destructor.bound.loc38: = bound_method %.loc38_41.16, %Op.ref.loc38 // CHECK:STDOUT: %ValueType.cpp_destructor.call.loc38: init %empty_tuple.type = call %ValueType.cpp_destructor.bound.loc38(%.loc38_41.16) -// CHECK:STDOUT: %Destroy.Op.bound.loc38_41.1: = bound_method %.loc38_41.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc38_41.1: init %empty_tuple.type = call %Destroy.Op.bound.loc38_41.1(%.loc38_41.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc38_41.1: = bound_method %.loc38_41.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc38_41.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc38_41.1(%.loc38_41.8) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc38_41.2: = bound_method %.loc38_41.8, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc38_41.2: init %empty_tuple.type = call %Destroy.Op.bound.loc38_41.2(%.loc38_41.8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc38_41.2: = bound_method %.loc38_41.8, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc38_41.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc38_41.2(%.loc38_41.8) // CHECK:STDOUT: %impl.elem0.loc38_41.1: @TestIterate.%.loc38_41.22 (%.32e) = impl_witness_access constants.%Destroy.lookup_impl_witness.95e, element0 [symbolic = %impl.elem0.loc38_41.2 (constants.%impl.elem0.87c)] // CHECK:STDOUT: %bound_method.loc38_41.7: = bound_method %var, %impl.elem0.loc38_41.1 // CHECK:STDOUT: %.loc38_41.18: %Destroy.type = converted constants.%as_type.04b, constants.%impl.elem1.9b3 [symbolic = %impl.elem1 (constants.%impl.elem1.9b3)] // CHECK:STDOUT: %.loc38_41.19: %Destroy.type = converted constants.%as_type.04b, constants.%impl.elem1.9b3 [symbolic = %impl.elem1 (constants.%impl.elem1.9b3)] -// CHECK:STDOUT: %specific_impl_fn.loc38_41.3: = specific_impl_function %impl.elem0.loc38_41.1, @Destroy.WithSelf.Op(constants.%impl.elem1.9b3) [symbolic = %specific_impl_fn.loc38_41.6 (constants.%specific_impl_fn.65a)] +// CHECK:STDOUT: %specific_impl_fn.loc38_41.3: = specific_impl_function %impl.elem0.loc38_41.1, @Destroy.WithSelf.Op.1(constants.%impl.elem1.9b3) [symbolic = %specific_impl_fn.loc38_41.6 (constants.%specific_impl_fn.65a)] // CHECK:STDOUT: %bound_method.loc38_41.8: = bound_method %var, %specific_impl_fn.loc38_41.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc38_41.8(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc38_41.3: init %empty_tuple.type = call %bound_method.loc38_41.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc38_41.1(%self.param: ref %.8f3) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc38_41.1(%self.param: ref %.8f3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc38_41.2(%self.param: ref %MaybeUnformed.5d7) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc38_41.2(%self.param: ref %MaybeUnformed.5d7) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc38_41.3(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc38_41.3(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc38_41.4(%self.param: ref %struct_type.value.has_value.bd1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc38_41.4(%self.param: ref %struct_type.value.has_value.bd1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc38_41.5(%self.param: ref %DefaultOptionalStorage.338) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc38_41.5(%self.param: ref %DefaultOptionalStorage.338) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc38_41.6(%self.param: ref %Optional.3cc) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc38_41.6(%self.param: ref %Optional.3cc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -4523,15 +4523,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Op.ref.loc80: %ValueType.cpp_destructor.type = name_ref Op, imports.%ValueType.cpp_destructor.decl [concrete = constants.%ValueType.cpp_destructor] // CHECK:STDOUT: %ValueType.cpp_destructor.bound.loc80: = bound_method %.loc80_42.14, %Op.ref.loc80 // CHECK:STDOUT: %ValueType.cpp_destructor.call.loc80: init %empty_tuple.type = call %ValueType.cpp_destructor.bound.loc80(%.loc80_42.14) -// CHECK:STDOUT: %Destroy.Op.bound.loc80_42.1: = bound_method %.loc80_42.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc80_42.1: init %empty_tuple.type = call %Destroy.Op.bound.loc80_42.1(%.loc80_42.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc80_42.1: = bound_method %.loc80_42.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc80_42.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc80_42.1(%.loc80_42.6) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc80_42.2: = bound_method %.loc80_42.6, constants.%Destroy.Op.1a2547.7 -// CHECK:STDOUT: %Destroy.Op.call.loc80_42.2: init %empty_tuple.type = call %Destroy.Op.bound.loc80_42.2(%.loc80_42.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc80_42.3: = bound_method %var, constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %Destroy.Op.call.loc80_42.3: init %empty_tuple.type = call %Destroy.Op.bound.loc80_42.3(%var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc80_42.2: = bound_method %.loc80_42.6, constants.%Destroy.WithSelf.Op.403171.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc80_42.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc80_42.2(%.loc80_42.6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc80_42.3: = bound_method %var, constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc80_42.3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc80_42.3(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -4560,7 +4560,7 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc38_41.20 => constants.%.e94 // CHECK:STDOUT: %impl.elem2.loc38_41.2 => constants.%T.as_type.as.Iterate.impl.NewCursor.237 // CHECK:STDOUT: %specific_impl_fn.loc38_41.4 => constants.%T.as_type.as.Iterate.impl.NewCursor.specific_fn -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.84a +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.fb2 // CHECK:STDOUT: %as_type => constants.%tuple.type.de6 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.95d // CHECK:STDOUT: %ptr => constants.%ptr.b95 @@ -4568,10 +4568,10 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %.loc38_41.21 => constants.%.d53 // CHECK:STDOUT: %impl.elem3.loc38_41.2 => constants.%T.as_type.as.Iterate.impl.Next.1b2 // CHECK:STDOUT: %specific_impl_fn.loc38_41.5 => constants.%T.as_type.as.Iterate.impl.Next.specific_fn -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.544 -// CHECK:STDOUT: %.loc38_41.22 => constants.%.a9c -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.8 -// CHECK:STDOUT: %impl.elem0.loc38_41.2 => constants.%Destroy.Op.1a2547.8 -// CHECK:STDOUT: %specific_impl_fn.loc38_41.6 => constants.%Destroy.Op.1a2547.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b34 +// CHECK:STDOUT: %.loc38_41.22 => constants.%.d72 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.6c4ec3.8 +// CHECK:STDOUT: %impl.elem0.loc38_41.2 => constants.%Destroy.WithSelf.Op.403171.8 +// CHECK:STDOUT: %specific_impl_fn.loc38_41.6 => constants.%Destroy.WithSelf.Op.403171.8 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon b/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon index d158c8018c0c..cda8f22fb835 100644 --- a/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon +++ b/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon @@ -110,9 +110,9 @@ fn F() { // CHECK:STDOUT: %initializer_list.initializer_list.0db5f6.2: %initializer_list.initializer_list.type.0fbcd7.2 = struct_value () [concrete] // CHECK:STDOUT: %initializer_list.cpp_destructor.type: type = fn_type @initializer_list.cpp_destructor [concrete] // CHECK:STDOUT: %initializer_list.cpp_destructor: %initializer_list.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc10_23.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.981, %Destroy.Op.1a2547.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc10_23.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.981, %Destroy.WithSelf.Op.403171.4 [concrete] // CHECK:STDOUT: %InitListConstructor: type = class_type @InitListConstructor [concrete] // CHECK:STDOUT: %pattern_type.ed6: type = pattern_type %InitListConstructor [concrete] // CHECK:STDOUT: %_.patt.100: %pattern_type.ed6 = value_binding_pattern _ [concrete] @@ -298,7 +298,7 @@ fn F() { // CHECK:STDOUT: %Consume__carbon_thunk.call: init %empty_tuple.type = call imports.%Consume__carbon_thunk.decl(%addr.loc10) // CHECK:STDOUT: %initializer_list.cpp_destructor.bound.loc10: = bound_method %.loc10_23.19, constants.%initializer_list.cpp_destructor // CHECK:STDOUT: %initializer_list.cpp_destructor.call.loc10: init %empty_tuple.type = call %initializer_list.cpp_destructor.bound.loc10(%.loc10_23.19) -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.981) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.981) // CHECK:STDOUT: %int_1.loc12_37: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc12_40: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc12_43: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] @@ -365,10 +365,10 @@ fn F() { // CHECK:STDOUT: %InitListConstructor.cpp_destructor.call: init %empty_tuple.type = call %InitListConstructor.cpp_destructor.bound(%.loc12_44.25) // CHECK:STDOUT: %initializer_list.cpp_destructor.bound.loc12: = bound_method %.loc12_44.20, constants.%initializer_list.cpp_destructor // CHECK:STDOUT: %initializer_list.cpp_destructor.call.loc12: init %empty_tuple.type = call %initializer_list.cpp_destructor.bound.loc12(%.loc12_44.20) -// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.981) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc12: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.981) // CHECK:STDOUT: %initializer_list.cpp_destructor.bound.loc8: = bound_method %.loc8_50.19, constants.%initializer_list.cpp_destructor // CHECK:STDOUT: %initializer_list.cpp_destructor.call.loc8: init %empty_tuple.type = call %initializer_list.cpp_destructor.bound.loc8(%.loc8_50.19) -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.981) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.981) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -376,14 +376,14 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @initializer_list.initializer_list.loc10(%_.param: %array_type) -> out %return.param: %initializer_list = "cpp.std.initializer_list.make"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_23.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_23.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_23.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_23.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_23.3(%self.param: ref %array_type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_23.3(%self.param: ref %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/type_alias/import.carbon b/toolchain/check/testdata/interop/cpp/type_alias/import.carbon index afd8d62434c5..efab1eb5e74a 100644 --- a/toolchain/check/testdata/interop/cpp/type_alias/import.carbon +++ b/toolchain/check/testdata/interop/cpp/type_alias/import.carbon @@ -89,10 +89,10 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %Copy.WithSelf.Op.type.36e: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] // CHECK:STDOUT: %.6d0: type = fn_type_with_self_type %Copy.WithSelf.Op.type.36e, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.d1c, @ptr.as.Copy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc10 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -148,18 +148,18 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %p.patt: %pattern_type.f00 = ref_binding_pattern p [concrete = constants.%p.patt] // CHECK:STDOUT: %p.var_patt: %pattern_type.f00 = var_pattern %p.patt [concrete = constants.%p.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%p.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %n.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%n.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %n.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%n.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %ptr.d08) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10(%self.param: ref %ptr.d08) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -186,8 +186,8 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.4ad, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %pc.patt: %pattern_type.8fa = ref_binding_pattern pc [concrete] // CHECK:STDOUT: %pc.var_patt: %pattern_type.8fa = var_pattern %pc.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc10 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -241,12 +241,12 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %pc.patt: %pattern_type.8fa = ref_binding_pattern pc [concrete = constants.%pc.patt] // CHECK:STDOUT: %pc.var_patt: %pattern_type.8fa = var_pattern %pc.patt [concrete = constants.%pc.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %pc.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%pc.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %pd.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%pd.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %pc.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%pc.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %pd.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%pd.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.0a2) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10(%self.param: ref %ptr.0a2) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/lifetime.carbon b/toolchain/check/testdata/let/lifetime.carbon index 0f4e481bd657..9ae477cd44af 100644 --- a/toolchain/check/testdata/let/lifetime.carbon +++ b/toolchain/check/testdata/let/lifetime.carbon @@ -46,9 +46,9 @@ fn F() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %.367: ref %A = temporary invalid, %A.val [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.9ef = value_binding_pattern b [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc11_37.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.367, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc11_37.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.367, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -95,17 +95,17 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.ref() -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc11_37.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc11_37: init %empty_tuple.type = call %Destroy.Op.bound(%.loc11_37.2) -// CHECK:STDOUT: %Destroy.Op.call.loc11_25: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) -// CHECK:STDOUT: %Destroy.Op.call.loc10_34: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) -// CHECK:STDOUT: %Destroy.Op.call.loc10_25: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc11_37.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11_37: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc11_37.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11_25: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.367) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_34: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.367) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10_25: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.367) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_37.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_37.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_37.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11_37.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/merging_with_indirections.carbon b/toolchain/check/testdata/namespace/merging_with_indirections.carbon index 19cd4bef3701..7a298baf55d2 100644 --- a/toolchain/check/testdata/namespace/merging_with_indirections.carbon +++ b/toolchain/check/testdata/namespace/merging_with_indirections.carbon @@ -173,8 +173,8 @@ fn Run() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type.821: type = pattern_type %A [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc7_11.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %a.patt: %pattern_type.821 = ref_binding_pattern a [concrete] // CHECK:STDOUT: %a.var_patt: %pattern_type.821 = var_pattern %a.patt [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] @@ -242,8 +242,8 @@ fn Run() { // CHECK:STDOUT: %.loc7_11.1: ref %A = temporary_storage // CHECK:STDOUT: %F.call.loc7: init %A to %.loc7_11.1 = call %F.ref.loc7() // CHECK:STDOUT: %.loc7_11.2: ref %A = temporary %.loc7_11.1, %F.call.loc7 -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %.loc7_11.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%.loc7_11.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %.loc7_11.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%.loc7_11.2) // CHECK:STDOUT: %a.var: ref %A = var_storage %a.var_patt // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%A, (constants.%DefaultOrUnformed.impl_witness.967) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_21.1: %DefaultOrUnformed.type = converted constants.%A, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] @@ -269,16 +269,16 @@ fn Run() { // CHECK:STDOUT: %.loc13: ref %A = splice_block %a.ref {} // CHECK:STDOUT: %F.call.loc13: init %A to %.loc13 = call %F.ref.loc13() // CHECK:STDOUT: assign %a.ref, %F.call.loc13 -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F [from "b.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_11.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_11.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_11.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_11.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/shadow.carbon b/toolchain/check/testdata/namespace/shadow.carbon index f7e189c71fbc..a5d01fd8c7f2 100644 --- a/toolchain/check/testdata/namespace/shadow.carbon +++ b/toolchain/check/testdata/namespace/shadow.carbon @@ -82,8 +82,8 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc26_5.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc26_5.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -167,8 +167,8 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc29_12.2: = bound_method %.loc29, %specific_fn.loc29 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc29_12.2(%.loc29) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %A.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%A.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %A.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%A.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -182,9 +182,9 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: return %.loc31 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_5.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_5.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_5.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_5.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/and.carbon b/toolchain/check/testdata/operators/builtin/and.carbon index 28a2898f2156..af8d51130d92 100644 --- a/toolchain/check/testdata/operators/builtin/and.carbon +++ b/toolchain/check/testdata/operators/builtin/and.carbon @@ -67,10 +67,10 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %d.patt: %pattern_type.cb1 = ref_binding_pattern d [concrete] // CHECK:STDOUT: %d.var_patt: %pattern_type.cb1 = var_pattern %d.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc26 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc26 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc23 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: %pattern_type.831 = wrapper_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %PartialConstant.type: type = fn_type @PartialConstant [concrete] @@ -343,20 +343,20 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %d.patt: %pattern_type.cb1 = ref_binding_pattern d [concrete = constants.%d.patt] // CHECK:STDOUT: %d.var_patt: %pattern_type.cb1 = var_pattern %d.patt [concrete = constants.%d.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc26: = bound_method %d.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc26: init %empty_tuple.type = call %Destroy.Op.bound.loc26(%d.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc25: = bound_method %c.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc25: init %empty_tuple.type = call %Destroy.Op.bound.loc25(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %b.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc24: init %empty_tuple.type = call %Destroy.Op.bound.loc24(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc23: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc23: init %empty_tuple.type = call %Destroy.Op.bound.loc23(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc26: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc26: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc26(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc25: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc25: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc25(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc24: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc24(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc23: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc23: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc23(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: fn @PartialConstant(%x.param: bool) { // CHECK:STDOUT: !entry: @@ -399,8 +399,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %a.patt: %pattern_type.cb1 = ref_binding_pattern a [concrete = constants.%a.patt.728] // CHECK:STDOUT: %a.var_patt: %pattern_type.cb1 = var_pattern %a.patt [concrete = constants.%a.var_patt.06f] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/assignment.carbon b/toolchain/check/testdata/operators/builtin/assignment.carbon index efd0bb3915f3..0d1b2603e950 100644 --- a/toolchain/check/testdata/operators/builtin/assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/assignment.carbon @@ -123,14 +123,14 @@ fn Main() { // CHECK:STDOUT: %bound_method.1b6: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_10.6bf: %i32 = int_value 10 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc27 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc23_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc23_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc19 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc27 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc23_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc23_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc19 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -349,32 +349,32 @@ fn Main() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30: init %i32 = call %bound_method.loc30_29.2(%int_10) [concrete = constants.%int_10.6bf] // CHECK:STDOUT: %.loc30_29: init %i32 = converted %int_10, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30 [concrete = constants.%int_10.6bf] // CHECK:STDOUT: assign %.loc30_3, %.loc30_29 -// CHECK:STDOUT: %Destroy.Op.bound.loc27: = bound_method %p.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc27: init %empty_tuple.type = call %Destroy.Op.bound.loc27(%p.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc23: = bound_method %c.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc23: init %empty_tuple.type = call %Destroy.Op.bound.loc23(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc19: = bound_method %b.var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc19: init %empty_tuple.type = call %Destroy.Op.bound.loc19(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc16: = bound_method %a.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc16: init %empty_tuple.type = call %Destroy.Op.bound.loc16(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc27: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc27: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc27(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc23: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc23: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc23(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc19: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc19: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc19(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc16: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc16: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc16(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27(%self.param: ref %ptr.d08) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc27(%self.param: ref %ptr.d08) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.3(%self.param: ref %struct_type.a.b.b4c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_3.3(%self.param: ref %struct_type.a.b.b4c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19(%self.param: ref %tuple.type.e55) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc19(%self.param: ref %tuple.type.e55) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon b/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon index a1be83490b87..d33f78fe7783 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 @@ -153,8 +153,8 @@ fn Main() { // CHECK:STDOUT: %bound_method.1b6: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_10.6bf: %i32 = int_value 10 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc56_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc56_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -386,16 +386,16 @@ fn Main() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc61: init %i32 = call %bound_method.loc61_27.2(%int_10) [concrete = constants.%int_10.6bf] // CHECK:STDOUT: %.loc61_27: init %i32 = converted %int_10, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc61 [concrete = constants.%int_10.6bf] // CHECK:STDOUT: assign %.loc61_4, %.loc61_27 -// CHECK:STDOUT: %Destroy.Op.bound.loc56: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc56: init %empty_tuple.type = call %Destroy.Op.bound.loc56(%a.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc33: = bound_method %n.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc33: init %empty_tuple.type = call %Destroy.Op.bound.loc33(%n.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc56: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc56: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc56(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc33: = bound_method %n.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc33: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc33(%n.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc56_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc56_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc56_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc56_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon index 8e84b85a3cc9..7049f7ec759d 100644 --- a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon @@ -80,8 +80,8 @@ fn Main() { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc18_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc18_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -166,14 +166,14 @@ 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: assign %a.ref.loc28_3, %F.call -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon index 75634b227f9d..4379e71ecfa5 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon @@ -36,8 +36,8 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc23 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -75,10 +75,10 @@ fn Main() { // CHECK:STDOUT: %x.patt: %pattern_type.831 = ref_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: %x.var_patt: %pattern_type.831 = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon index 639443174199..8d31085f8524 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon @@ -57,8 +57,8 @@ fn Main() { // CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 56e-1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc16_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc16_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -106,14 +106,14 @@ fn Main() { // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 56e-1 [concrete = constants.%float] // CHECK:STDOUT: %.loc24: %i32 = converted %float, [concrete = ] // CHECK:STDOUT: assign %a.ref, -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/or.carbon b/toolchain/check/testdata/operators/builtin/or.carbon index 5fbf4b25f32e..f54d9191ff1b 100644 --- a/toolchain/check/testdata/operators/builtin/or.carbon +++ b/toolchain/check/testdata/operators/builtin/or.carbon @@ -67,10 +67,10 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %d.patt: %pattern_type.cb1 = ref_binding_pattern d [concrete] // CHECK:STDOUT: %d.var_patt: %pattern_type.cb1 = var_pattern %d.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc26 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc25 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc26 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc25 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: %pattern_type.831 = wrapper_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %PartialConstant.type: type = fn_type @PartialConstant [concrete] @@ -350,20 +350,20 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %d.patt: %pattern_type.cb1 = ref_binding_pattern d [concrete = constants.%d.patt] // CHECK:STDOUT: %d.var_patt: %pattern_type.cb1 = var_pattern %d.patt [concrete = constants.%d.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc26: = bound_method %d.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc26: init %empty_tuple.type = call %Destroy.Op.bound.loc26(%d.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc25: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc25: init %empty_tuple.type = call %Destroy.Op.bound.loc25(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc24: init %empty_tuple.type = call %Destroy.Op.bound.loc24(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc23: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc23: init %empty_tuple.type = call %Destroy.Op.bound.loc23(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc26: = bound_method %d.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc26: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc26(%d.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc25: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc25: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc25(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc24: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc24(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc23: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc23: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc23(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: fn @PartialConstant(%x.param: bool) { // CHECK:STDOUT: !entry: @@ -408,8 +408,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %a.patt: %pattern_type.831 = ref_binding_pattern a [concrete = constants.%a.patt.d4ccad.2] // CHECK:STDOUT: %a.var_patt: %pattern_type.831 = var_pattern %a.patt [concrete = constants.%a.var_patt.41b89c.2] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/unary_op.carbon b/toolchain/check/testdata/operators/builtin/unary_op.carbon index 9b960ccce6b8..903de51ba06f 100644 --- a/toolchain/check/testdata/operators/builtin/unary_op.carbon +++ b/toolchain/check/testdata/operators/builtin/unary_op.carbon @@ -57,10 +57,10 @@ fn Constant() { // CHECK:STDOUT: %b.var_patt: %pattern_type.831 = var_pattern %b.patt.454 [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc24 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc24 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc23 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -189,16 +189,16 @@ fn Constant() { // CHECK:STDOUT: %b.patt: %pattern_type.831 = ref_binding_pattern b [concrete = constants.%b.patt.454] // CHECK:STDOUT: %b.var_patt: %pattern_type.831 = var_pattern %b.patt [concrete = constants.%b.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %b.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc24: init %empty_tuple.type = call %Destroy.Op.bound.loc24(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc23: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc23: init %empty_tuple.type = call %Destroy.Op.bound.loc23(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc24: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc24(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc23: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc23: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc23(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24(%self.param: ref bool) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon index f463ae1e458b..1cd26823674b 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon @@ -78,8 +78,8 @@ fn TestRef(b: C) { // CHECK:STDOUT: %AddAssignWith.generic: %AddAssignWith.type.2fb = struct_value () [concrete] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc36_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc36_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -189,14 +189,14 @@ fn TestRef(b: C) { // CHECK:STDOUT: %a.ref.loc41: ref %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %a.ref.loc46: ref %C = name_ref a, %a -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc36_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc36_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc36_3.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc36_3.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index 87dd8c756abb..8eb274159789 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -115,8 +115,8 @@ fn Test() { // CHECK:STDOUT: %Source.specific_fn.ca6: = specific_function %Source, @Source(%X) [concrete] // CHECK:STDOUT: %.9c6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.1f0, %ImplicitAs.facet.1d0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc34_20.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc34_20.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %Source.specific_fn.75e: = specific_function %Source, @Source(%i32) [concrete] // CHECK:STDOUT: %.64d: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.40d, %ImplicitAs.facet.1cc [concrete] // CHECK:STDOUT: } @@ -334,8 +334,8 @@ fn Test() { // CHECK:STDOUT: %.loc34_20.4: %i32 = value_of_initializer %X.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc34_20.5: %i32 = converted %Source.call.loc34, %.loc34_20.4 // CHECK:STDOUT: %Sink_i32.call: init %empty_tuple.type = call %Sink_i32.ref(%.loc34_20.5) -// CHECK:STDOUT: %Destroy.Op.bound.loc34: = bound_method %.loc34_20.2, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc34: init %empty_tuple.type = call %Destroy.Op.bound.loc34(%.loc34_20.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc34: = bound_method %.loc34_20.2, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc34: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc34(%.loc34_20.2) // CHECK:STDOUT: %Sink_X.ref: %Sink_X.type = name_ref Sink_X, file.%Sink_X.decl [concrete = constants.%Sink_X] // CHECK:STDOUT: %Source.ref.loc35: %Source.type = name_ref Source, file.%Source.decl [concrete = constants.%Source] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -351,24 +351,24 @@ fn Test() { // CHECK:STDOUT: %.loc35_20.5: ref %X = temporary %.loc35_20.1, %.loc35_20.4 // CHECK:STDOUT: %.loc35_20.6: %X = acquire_value %.loc35_20.5 // CHECK:STDOUT: %Sink_X.call: init %empty_tuple.type = call %Sink_X.ref(%.loc35_20.6) -// CHECK:STDOUT: %Destroy.Op.bound.loc35: = bound_method %.loc35_20.5, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc35: init %empty_tuple.type = call %Destroy.Op.bound.loc35(%.loc35_20.5) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc35: = bound_method %.loc35_20.5, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc35: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc35(%.loc35_20.5) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_20.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_20.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_20.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_20.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_20.3(%self.param: ref %struct_type.n) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_20.3(%self.param: ref %struct_type.n) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_20.4(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc34_20.4(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/index.carbon b/toolchain/check/testdata/operators/overloaded/index.carbon index dd55fa406f2e..d1eaf28c1070 100644 --- a/toolchain/check/testdata/operators/overloaded/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/index.carbon @@ -436,9 +436,9 @@ fn F() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc15_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.115, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc15_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.115, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -588,13 +588,13 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc23: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.115) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_15.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_15.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_15.2(%self.param: ref %C) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc15_15.2(%self.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/package_expr/syntax.carbon b/toolchain/check/testdata/package_expr/syntax.carbon index 29b094dac48c..bbef4b360786 100644 --- a/toolchain/check/testdata/package_expr/syntax.carbon +++ b/toolchain/check/testdata/package_expr/syntax.carbon @@ -200,8 +200,8 @@ fn Main() { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc9_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -273,16 +273,16 @@ fn Main() { // CHECK:STDOUT: %y.patt: %pattern_type.6b6 = ref_binding_pattern y [concrete = constants.%y.patt] // CHECK:STDOUT: %y.var_patt: %pattern_type.6b6 = var_pattern %y.patt [concrete = constants.%y.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %y.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call %Destroy.Op.bound.loc9(%y.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %x.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc9: = bound_method %y.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc9(%y.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%x.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/patterns/underscore.carbon b/toolchain/check/testdata/patterns/underscore.carbon index 2b798cd07135..adf33f741b51 100644 --- a/toolchain/check/testdata/patterns/underscore.carbon +++ b/toolchain/check/testdata/patterns/underscore.carbon @@ -121,8 +121,8 @@ fn F() -> {} { // CHECK:STDOUT: %_.patt.3b4: %pattern_type.a96 = ref_binding_pattern _ [concrete] // CHECK:STDOUT: %_.var_patt.f52: %pattern_type.a96 = var_pattern %_.patt.3b4 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc9 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -190,12 +190,12 @@ fn F() -> {} { // CHECK:STDOUT: %_.patt.loc9: %pattern_type.a96 = ref_binding_pattern _ [concrete = constants.%_.patt.3b4] // CHECK:STDOUT: %_.var_patt: %pattern_type.a96 = var_pattern %_.patt.loc9 [concrete = constants.%_.var_patt.f52] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %_.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%_.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %_.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%_.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index ecc355a91292..67854e746e79 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -64,8 +64,8 @@ fn F() -> i32 { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc16_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc16_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -132,14 +132,14 @@ fn F() -> i32 { // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_10.2: = bound_method %.loc17_10.2, %specific_fn.loc17 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc17_10.2(%.loc17_10.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %n.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%n.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %n.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%n.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/address_of_lvalue.carbon b/toolchain/check/testdata/pointer/address_of_lvalue.carbon index 2aec86cc735b..d89ca0c0bf31 100644 --- a/toolchain/check/testdata/pointer/address_of_lvalue.carbon +++ b/toolchain/check/testdata/pointer/address_of_lvalue.carbon @@ -106,14 +106,14 @@ fn F() { // CHECK:STDOUT: %t1.patt: %pattern_type.f00 = ref_binding_pattern t1 [concrete] // CHECK:STDOUT: %t1.var_patt: %pattern_type.f00 = var_pattern %t1.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc24 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc22_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc18 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc16 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc24 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc22_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc18 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc16 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -311,40 +311,40 @@ fn F() { // CHECK:STDOUT: %t1.patt: %pattern_type.f00 = ref_binding_pattern t1 [concrete = constants.%t1.patt] // CHECK:STDOUT: %t1.var_patt: %pattern_type.f00 = var_pattern %t1.patt [concrete = constants.%t1.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %t1.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc24: init %empty_tuple.type = call %Destroy.Op.bound.loc24(%t1.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc23: = bound_method %t0.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc23: init %empty_tuple.type = call %Destroy.Op.bound.loc23(%t0.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc22: = bound_method %t.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call.loc22: init %empty_tuple.type = call %Destroy.Op.bound.loc22(%t.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc20: = bound_method %r.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc20: init %empty_tuple.type = call %Destroy.Op.bound.loc20(%r.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc19: = bound_method %q.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc19: init %empty_tuple.type = call %Destroy.Op.bound.loc19(%q.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc18: = bound_method %p.var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call.loc18: init %empty_tuple.type = call %Destroy.Op.bound.loc18(%p.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc16: = bound_method %s.var, constants.%Destroy.Op.1a2547.6 -// CHECK:STDOUT: %Destroy.Op.call.loc16: init %empty_tuple.type = call %Destroy.Op.bound.loc16(%s.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc24: = bound_method %t1.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc24: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc24(%t1.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc23: = bound_method %t0.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc23: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc23(%t0.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc22: = bound_method %t.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc22: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc22(%t.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc20: = bound_method %r.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc20: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc20(%r.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc19: = bound_method %q.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc19: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc19(%q.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc18: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc18: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc18(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc16: = bound_method %s.var, constants.%Destroy.WithSelf.Op.403171.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc16: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc16(%s.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24(%self.param: ref %ptr.d08) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc24(%self.param: ref %ptr.d08) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_3.3(%self.param: ref %tuple.type.e55) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc22_3.3(%self.param: ref %tuple.type.e55) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18(%self.param: ref %ptr.939) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18(%self.param: ref %ptr.939) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16(%self.param: ref %struct_type.a.b.b4c) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16(%self.param: ref %struct_type.a.b.b4c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/basic.carbon b/toolchain/check/testdata/pointer/basic.carbon index cf44dda5cee7..6207a4c24a84 100644 --- a/toolchain/check/testdata/pointer/basic.carbon +++ b/toolchain/check/testdata/pointer/basic.carbon @@ -79,10 +79,10 @@ fn F() -> i32 { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet.1e1 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc17 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.1: %Destroy.Op.type.1d8f74.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc16_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.1: type = fn_type @Destroy.WithSelf.Op.loc17 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.1: %Destroy.WithSelf.Op.type.ef016f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc16_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -167,18 +167,18 @@ fn F() -> i32 { // CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc19_10.2: = bound_method %.loc19_10.2, %specific_fn.loc19 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc19_10.2(%.loc19_10.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc17: = bound_method %p.var, constants.%Destroy.Op.1a2547.1 -// CHECK:STDOUT: %Destroy.Op.call.loc17: init %empty_tuple.type = call %Destroy.Op.bound.loc17(%p.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc16: = bound_method %n.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call.loc16: init %empty_tuple.type = call %Destroy.Op.bound.loc16(%n.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc17: = bound_method %p.var, constants.%Destroy.WithSelf.Op.403171.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc17: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc17(%p.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc16: = bound_method %n.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc16: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc16(%n.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17(%self.param: ref %ptr.d08) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc17(%self.param: ref %ptr.d08) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } 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 36cdf5c7f089..22b7cb1c3061 100644 --- a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon @@ -73,8 +73,8 @@ fn G() -> C { // CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc16_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc16_12.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] // CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] @@ -177,14 +177,14 @@ fn G() -> C { // CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_12.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_12.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_12.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_12.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon b/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon index c54b2ff693dd..7e4a1a4fbe3f 100644 --- a/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon @@ -59,8 +59,8 @@ fn ForgotReturnType() { // CHECK:STDOUT: %v.patt: %pattern_type.cb1 = ref_binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: %pattern_type.cb1 = var_pattern %v.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc12 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -97,12 +97,12 @@ fn ForgotReturnType() { // CHECK:STDOUT: %v.patt: %pattern_type.cb1 = ref_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: %v.var_patt: %pattern_type.cb1 = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- fail_forgot_return_type.carbon // CHECK:STDOUT: @@ -115,8 +115,8 @@ fn ForgotReturnType() { // CHECK:STDOUT: %v.patt: %pattern_type.cb1 = ref_binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: %pattern_type.cb1 = var_pattern %v.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc12 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -153,10 +153,10 @@ fn ForgotReturnType() { // CHECK:STDOUT: %v.patt: %pattern_type.cb1 = ref_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: %v.var_patt: %pattern_type.cb1 = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon index aaa18a5aa97e..6cbdc182da47 100644 --- a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon @@ -86,8 +86,8 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %bound_method.953: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc25_14.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc25_14.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %DifferentScopes.type: type = fn_type @DifferentScopes [concrete] // CHECK:STDOUT: %DifferentScopes: %DifferentScopes.type = struct_value () [concrete] // CHECK:STDOUT: %w.patt.859340.2: %pattern_type.6b6 = ref_binding_pattern w [concrete] @@ -172,10 +172,10 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %w.patt: %pattern_type.6b6 = ref_binding_pattern w [concrete = constants.%w.patt.859340.1] // CHECK:STDOUT: %w.var_patt: %pattern_type.6b6 = var_pattern %w.patt [concrete = constants.%w.var_patt.82cc74.1] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc25: = bound_method %w.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc25: init %empty_tuple.type = call %Destroy.Op.bound.loc25(%w.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc17: = bound_method %v.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc17: init %empty_tuple.type = call %Destroy.Op.bound.loc17(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc25: = bound_method %w.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc25: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc25(%w.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc17: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc17: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc17(%v.var) // CHECK:STDOUT: br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -189,9 +189,9 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: return %.loc27 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_14.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_14.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc25_14.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc25_14.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -236,13 +236,13 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %w.patt: %pattern_type.6b6 = ref_binding_pattern w [concrete = constants.%w.patt.859340.2] // CHECK:STDOUT: %w.var_patt: %pattern_type.6b6 = var_pattern %w.patt [concrete = constants.%w.var_patt.82cc74.2] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc41: = bound_method %w.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc41: init %empty_tuple.type = call %Destroy.Op.bound.loc41(%w.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc41: = bound_method %w.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc41: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc41(%w.var) // CHECK:STDOUT: br !if.else.loc33 // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc33: -// CHECK:STDOUT: %Destroy.Op.bound.loc32: = bound_method %v.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc32: init %empty_tuple.type = call %Destroy.Op.bound.loc32(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc32: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc32: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc32(%v.var) // CHECK:STDOUT: br !if.else.loc31 // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc31: diff --git a/toolchain/check/testdata/return/fail_returned_var_type.carbon b/toolchain/check/testdata/return/fail_returned_var_type.carbon index 17d0f6ec241d..38e843966bc9 100644 --- a/toolchain/check/testdata/return/fail_returned_var_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_type.carbon @@ -64,8 +64,8 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: %bound_method: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.895: %f64.dc1 = float_value 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc23_12.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -120,14 +120,14 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: %v.var_patt: %pattern_type.fb7 = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc23_17: %f64.dc1 = acquire_value %v -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return %.loc23_17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_12.1(%self.param: ref %f64.794) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_12.1(%self.param: ref %f64.794) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_12.2(%self.param: ref %f64.dc1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc23_12.2(%self.param: ref %f64.dc1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/import_convert_function.carbon b/toolchain/check/testdata/return/import_convert_function.carbon index 587bb4573556..d90b2388fb4e 100644 --- a/toolchain/check/testdata/return/import_convert_function.carbon +++ b/toolchain/check/testdata/return/import_convert_function.carbon @@ -829,9 +829,9 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.bound.d30: = bound_method %C.val.d9b, %C.as.ImplicitAs.impl.Convert.3cefb0.1 [concrete] // CHECK:STDOUT: %.de3: ref %C.771 = temporary invalid, %C.val.d9b [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_26.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.234: = bound_method %.de3, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc7_26.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.9e6: = bound_method %.de3, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.953: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -844,9 +844,9 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.3cefb0.2: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.2 = struct_value () [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.bound.b85: = bound_method %C.val.399, %C.as.ImplicitAs.impl.Convert.3cefb0.2 [concrete] // CHECK:STDOUT: %.027: ref %C.83b = temporary invalid, %C.val.399 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.d6e: = bound_method %.027, %Destroy.Op.1a2547.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc8 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.bd8: = bound_method %.027, %Destroy.WithSelf.Op.403171.3 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.3cb: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -859,9 +859,9 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.3cefb0.3: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.3 = struct_value () [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.bound.468: = bound_method %C.val.040, %C.as.ImplicitAs.impl.Convert.3cefb0.3 [concrete] // CHECK:STDOUT: %.ed7: ref %C.5ce = temporary invalid, %C.val.040 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc9 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.458: = bound_method %.ed7, %Destroy.Op.1a2547.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc9 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.00c: = bound_method %.ed7, %Destroy.WithSelf.Op.403171.4 [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.763: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -874,9 +874,9 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.3cefb0.4: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.4 = struct_value () [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.bound.891: = bound_method %C.val.cf1, %C.as.ImplicitAs.impl.Convert.3cefb0.4 [concrete] // CHECK:STDOUT: %.dc8: ref %C.b3e = temporary invalid, %C.val.cf1 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.5e3: = bound_method %.dc8, %Destroy.Op.1a2547.5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc10 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.c47: = bound_method %.dc8, %Destroy.WithSelf.Op.403171.5 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.b7a: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -889,9 +889,9 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.3cefb0.5: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.5 = struct_value () [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.bound.65e: = bound_method %C.val.19e, %C.as.ImplicitAs.impl.Convert.3cefb0.5 [concrete] // CHECK:STDOUT: %.054: ref %C.8ee = temporary invalid, %C.val.19e [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc11 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.670: = bound_method %.054, %Destroy.Op.1a2547.6 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.6: type = fn_type @Destroy.WithSelf.Op.loc11 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.6: %Destroy.WithSelf.Op.type.ef016f.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.3c7: = bound_method %.054, %Destroy.WithSelf.Op.403171.6 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.c9d: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -904,9 +904,9 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.3cefb0.6: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.6 = struct_value () [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.bound.c06: = bound_method %C.val.6ca, %C.as.ImplicitAs.impl.Convert.3cefb0.6 [concrete] // CHECK:STDOUT: %.6f6: ref %C.5c1 = temporary invalid, %C.val.6ca [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc12 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.443: = bound_method %.6f6, %Destroy.Op.1a2547.7 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.7: type = fn_type @Destroy.WithSelf.Op.loc12 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.7: %Destroy.WithSelf.Op.type.ef016f.7 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.a32: = bound_method %.6f6, %Destroy.WithSelf.Op.403171.7 [concrete] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.13d: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.be9: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -919,9 +919,9 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.3cefb0.7: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.7 = struct_value () [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.bound.edd: = bound_method %C.val.225, %C.as.ImplicitAs.impl.Convert.3cefb0.7 [concrete] // CHECK:STDOUT: %.fa8: ref %C.57b = temporary invalid, %C.val.225 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.loc13 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.742: = bound_method %.fa8, %Destroy.Op.1a2547.8 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.8: type = fn_type @Destroy.WithSelf.Op.loc13 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.8: %Destroy.WithSelf.Op.type.ef016f.8 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.6ec: = bound_method %.fa8, %Destroy.WithSelf.Op.403171.8 [concrete] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.66b: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.7ff: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -934,9 +934,9 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.3cefb0.8: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.8 = struct_value () [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.bound.a06: = bound_method %C.val.79c, %C.as.ImplicitAs.impl.Convert.3cefb0.8 [concrete] // CHECK:STDOUT: %.a0a: ref %C.b0a = temporary invalid, %C.val.79c [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.9: type = fn_type @Destroy.Op.loc14 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.9: %Destroy.Op.type.1d8f74.9 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.e4a: = bound_method %.a0a, %Destroy.Op.1a2547.9 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.9: type = fn_type @Destroy.WithSelf.Op.loc14 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.9: %Destroy.WithSelf.Op.type.ef016f.9 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.81a: = bound_method %.a0a, %Destroy.WithSelf.Op.403171.9 [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1128,7 +1128,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %.loc7_26.3: %C.771 = acquire_value %.loc7_26.2 [concrete = constants.%C.val.d9b] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call.loc7: init %D to %.loc6_26.1 = call %bound_method.loc7_35(%.loc7_26.3) // CHECK:STDOUT: %.loc7_35: init %D = converted %.loc7_26.1, %C.as.ImplicitAs.impl.Convert.call.loc7 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.9e6(constants.%.de3) // CHECK:STDOUT: return %.loc7_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc7: @@ -1158,7 +1158,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %.loc8_26.3: %C.83b = acquire_value %.loc8_26.2 [concrete = constants.%C.val.399] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call.loc8: init %D to %.loc6_26.2 = call %bound_method.loc8_35(%.loc8_26.3) // CHECK:STDOUT: %.loc8_35: init %D = converted %.loc8_26.1, %C.as.ImplicitAs.impl.Convert.call.loc8 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call constants.%Destroy.Op.bound.d6e(constants.%.027) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.bd8(constants.%.027) // CHECK:STDOUT: return %.loc8_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc8: @@ -1188,7 +1188,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %.loc9_26.3: %C.5ce = acquire_value %.loc9_26.2 [concrete = constants.%C.val.040] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call.loc9: init %D to %.loc6_26.3 = call %bound_method.loc9_35(%.loc9_26.3) // CHECK:STDOUT: %.loc9_35: init %D = converted %.loc9_26.1, %C.as.ImplicitAs.impl.Convert.call.loc9 -// CHECK:STDOUT: %Destroy.Op.call.loc9: init %empty_tuple.type = call constants.%Destroy.Op.bound.458(constants.%.ed7) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc9: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.00c(constants.%.ed7) // CHECK:STDOUT: return %.loc9_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc9: @@ -1218,7 +1218,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %.loc10_26.3: %C.b3e = acquire_value %.loc10_26.2 [concrete = constants.%C.val.cf1] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call.loc10: init %D to %.loc6_26.4 = call %bound_method.loc10_35(%.loc10_26.3) // CHECK:STDOUT: %.loc10_35: init %D = converted %.loc10_26.1, %C.as.ImplicitAs.impl.Convert.call.loc10 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call constants.%Destroy.Op.bound.5e3(constants.%.dc8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.c47(constants.%.dc8) // CHECK:STDOUT: return %.loc10_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc10: @@ -1248,7 +1248,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %.loc11_26.3: %C.8ee = acquire_value %.loc11_26.2 [concrete = constants.%C.val.19e] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call.loc11: init %D to %.loc6_26.5 = call %bound_method.loc11_35(%.loc11_26.3) // CHECK:STDOUT: %.loc11_35: init %D = converted %.loc11_26.1, %C.as.ImplicitAs.impl.Convert.call.loc11 -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call constants.%Destroy.Op.bound.670(constants.%.054) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.3c7(constants.%.054) // CHECK:STDOUT: return %.loc11_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc11: @@ -1278,7 +1278,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %.loc12_26.3: %C.5c1 = acquire_value %.loc12_26.2 [concrete = constants.%C.val.6ca] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call.loc12: init %D to %.loc6_26.6 = call %bound_method.loc12_35(%.loc12_26.3) // CHECK:STDOUT: %.loc12_35: init %D = converted %.loc12_26.1, %C.as.ImplicitAs.impl.Convert.call.loc12 -// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call constants.%Destroy.Op.bound.443(constants.%.6f6) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc12: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.a32(constants.%.6f6) // CHECK:STDOUT: return %.loc12_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc12: @@ -1308,7 +1308,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %.loc13_26.3: %C.57b = acquire_value %.loc13_26.2 [concrete = constants.%C.val.225] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call.loc13: init %D to %.loc6_26.7 = call %bound_method.loc13_35(%.loc13_26.3) // CHECK:STDOUT: %.loc13_35: init %D = converted %.loc13_26.1, %C.as.ImplicitAs.impl.Convert.call.loc13 -// CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call constants.%Destroy.Op.bound.742(constants.%.fa8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.6ec(constants.%.fa8) // CHECK:STDOUT: return %.loc13_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc13: @@ -1338,7 +1338,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %.loc14_26.3: %C.b0a = acquire_value %.loc14_26.2 [concrete = constants.%C.val.79c] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call.loc14: init %D to %.loc6_26.8 = call %bound_method.loc14_35(%.loc14_26.3) // CHECK:STDOUT: %.loc14_35: init %D = converted %.loc14_26.1, %C.as.ImplicitAs.impl.Convert.call.loc14 -// CHECK:STDOUT: %Destroy.Op.call.loc14: init %empty_tuple.type = call constants.%Destroy.Op.bound.e4a(constants.%.a0a) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc14: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound.81a(constants.%.a0a) // CHECK:STDOUT: return %.loc14_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc14: @@ -1351,58 +1351,58 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.1 [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_26.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_26.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_26.2(%self.param: ref %C.771) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_26.2(%self.param: ref %C.771) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.2 [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8(%self.param: ref %C.83b) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8(%self.param: ref %C.83b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.3 [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9(%self.param: ref %C.5ce) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc9(%self.param: ref %C.5ce) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.4 [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %C.b3e) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10(%self.param: ref %C.b3e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.5 [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11(%self.param: ref %C.8ee) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11(%self.param: ref %C.8ee) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.6 [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc12(%self.param: ref %C.5c1) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc12(%self.param: ref %C.5c1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.7 [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13(%self.param: ref %C.57b) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13(%self.param: ref %C.57b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.8 [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14(%self.param: ref %C.b0a) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14(%self.param: ref %C.b0a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/returned_var.carbon b/toolchain/check/testdata/return/returned_var.carbon index 7cfd111569a1..04894e558dda 100644 --- a/toolchain/check/testdata/return/returned_var.carbon +++ b/toolchain/check/testdata/return/returned_var.carbon @@ -85,8 +85,8 @@ fn G() -> i32 { // CHECK:STDOUT: %bound_method.6e0: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc26_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc26_12.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -201,14 +201,14 @@ fn G() -> i32 { // CHECK:STDOUT: %result.var_patt: %pattern_type.6b6 = var_pattern %result.patt [concrete = constants.%result.var_patt.a44] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc26_22: %i32 = acquire_value %result -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %result.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%result.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %result.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%result.var) // CHECK:STDOUT: return %.loc26_22 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_12.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_12.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_12.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc26_12.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/returned_var_scope.carbon b/toolchain/check/testdata/return/returned_var_scope.carbon index 75f8f16d7077..d9a5531dedaa 100644 --- a/toolchain/check/testdata/return/returned_var_scope.carbon +++ b/toolchain/check/testdata/return/returned_var_scope.carbon @@ -67,8 +67,8 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %bound_method.6e0: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc17_14.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc17_14.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %w.patt: %pattern_type.6b6 = ref_binding_pattern w [concrete] // CHECK:STDOUT: %w.var_patt: %pattern_type.6b6 = var_pattern %w.patt [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] @@ -152,8 +152,8 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %v.patt: %pattern_type.6b6 = ref_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc17: = bound_method %v.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc17: init %empty_tuple.type = call %Destroy.Op.bound.loc17(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc17: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc17: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc17(%v.var) // CHECK:STDOUT: br !if.else.loc16 // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc16: @@ -176,8 +176,8 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %w.patt: %pattern_type.6b6 = ref_binding_pattern w [concrete = constants.%w.patt] // CHECK:STDOUT: %w.var_patt: %pattern_type.6b6 = var_pattern %w.patt [concrete = constants.%w.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc20: = bound_method %w.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc20: init %empty_tuple.type = call %Destroy.Op.bound.loc20(%w.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc20: = bound_method %w.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc20: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc20(%w.var) // CHECK:STDOUT: br !if.else.loc19 // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc19: @@ -191,9 +191,9 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: return %.loc22 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17_14.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc17_14.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17_14.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc17_14.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -220,8 +220,8 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc27_19: %i32 = acquire_value %v -// CHECK:STDOUT: %Destroy.Op.bound.loc27: = bound_method %v.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc27: init %empty_tuple.type = call %Destroy.Op.bound.loc27(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc27: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc27: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc27(%v.var) // CHECK:STDOUT: return %.loc27_19 // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -241,8 +241,8 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %w.var_patt: %pattern_type.6b6 = var_pattern %w.patt [concrete = constants.%w.var_patt] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc30_17: %i32 = acquire_value %w -// CHECK:STDOUT: %Destroy.Op.bound.loc30: = bound_method %w.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc30: init %empty_tuple.type = call %Destroy.Op.bound.loc30(%w.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc30: = bound_method %w.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc30: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc30(%w.var) // CHECK:STDOUT: return %.loc30_17 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/literal_member_access.carbon b/toolchain/check/testdata/struct/literal_member_access.carbon index a1174fa759a5..2d25bc2b87ad 100644 --- a/toolchain/check/testdata/struct/literal_member_access.carbon +++ b/toolchain/check/testdata/struct/literal_member_access.carbon @@ -55,8 +55,8 @@ fn F() -> i32 { // CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc18_26.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc18_26.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -132,19 +132,19 @@ fn F() -> i32 { // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18_38.2: = bound_method %.loc18_38, %specific_fn // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc18_38.2(%.loc18_38) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc18_26.2, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc18_26.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc18_26.2, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc18_26.2) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_26.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_26.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_26.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_26.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_26.3(%self.param: ref %struct_type.x.y.z) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_26.3(%self.param: ref %struct_type.x.y.z) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/nested_struct_in_place.carbon b/toolchain/check/testdata/struct/nested_struct_in_place.carbon index e141bb5998bb..343d0ed60328 100644 --- a/toolchain/check/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/check/testdata/struct/nested_struct_in_place.carbon @@ -43,8 +43,8 @@ fn G() { // CHECK:STDOUT: %v.patt: %pattern_type.28f = ref_binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: %pattern_type.28f = var_pattern %v.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc18_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc18_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -114,24 +114,24 @@ fn G() { // CHECK:STDOUT: %v.patt: %pattern_type.28f = ref_binding_pattern v [concrete = constants.%v.patt] // CHECK:STDOUT: %v.var_patt: %pattern_type.28f = var_pattern %v.patt [concrete = constants.%v.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.3(%self.param: ref %tuple.type.555) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.3(%self.param: ref %tuple.type.555) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.4(%self.param: ref %struct_type.a.b.2a0) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc18_3.4(%self.param: ref %struct_type.a.b.2a0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon index 1357988052a3..59f4b606b178 100644 --- a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon +++ b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon @@ -64,8 +64,8 @@ fn H() { // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %v.patt: %pattern_type.394 = ref_binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: %pattern_type.394 = var_pattern %v.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc7_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.3: type = fn_type @Destroy.WithSelf.Op.loc7_3.3 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.3: %Destroy.WithSelf.Op.type.ef016f.3 = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.ac8: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] @@ -110,19 +110,19 @@ fn H() { // CHECK:STDOUT: %F.ref.loc9: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: // CHECK:STDOUT: %F.call.loc9: init %tuple.type.e55 to %.loc5_20.1 = call %F.ref.loc9() -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: return %F.call.loc9 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.3(%self.param: ref %tuple.type.e55) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.3(%self.param: ref %tuple.type.e55) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -141,8 +141,8 @@ fn H() { // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_13.2: = bound_method %.loc15_13, %specific_fn // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc15_13.2(%.loc15_13) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc15_12.2, constants.%Destroy.Op.1a2547.3 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc15_12.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc15_12.2, constants.%Destroy.WithSelf.Op.403171.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc15_12.2) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -164,8 +164,8 @@ fn H() { // CHECK:STDOUT: %pattern_type.e12: type = pattern_type %tuple.type.015 [concrete] // CHECK:STDOUT: %v.patt.dde: %pattern_type.e12 = ref_binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt.678: %pattern_type.e12 = var_pattern %v.patt.dde [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc7_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.4: type = fn_type @Destroy.WithSelf.Op.loc7_3.4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.4: %Destroy.WithSelf.Op.type.ef016f.4 = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.3a3: type = tuple_type (type, %tuple.type.ff9, type) [concrete] // CHECK:STDOUT: %tuple.82e: %tuple.type.3a3 = tuple_value (%i32, %tuple.04d, %i32) [concrete] // CHECK:STDOUT: %tuple.type.b7e: type = tuple_type (%i32, %tuple.type.555, %i32) [concrete] @@ -192,8 +192,8 @@ fn H() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] // CHECK:STDOUT: %bound_method.3cb: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc13 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.5: type = fn_type @Destroy.WithSelf.Op.loc13 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.5: %Destroy.WithSelf.Op.type.ef016f.5 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -233,24 +233,24 @@ fn H() { // CHECK:STDOUT: %v.patt: %pattern_type.e12 = ref_binding_pattern v [concrete = constants.%v.patt.dde] // CHECK:STDOUT: %v.var_patt: %pattern_type.e12 = var_pattern %v.patt [concrete = constants.%v.var_patt.678] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.4 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.3(%self.param: ref %tuple.type.555) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.3(%self.param: ref %tuple.type.555) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.4(%self.param: ref %tuple.type.015) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.4(%self.param: ref %tuple.type.015) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -299,12 +299,12 @@ fn H() { // CHECK:STDOUT: %v.patt: %pattern_type.f8e = ref_binding_pattern v [concrete = constants.%v.patt.7e2] // CHECK:STDOUT: %v.var_patt: %pattern_type.f8e = var_pattern %v.patt [concrete = constants.%v.var_patt.409] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.1a2547.5 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403171.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%v.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13(%self.param: ref %tuple.type.b7e) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc13(%self.param: ref %tuple.type.b7e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/tuple_pattern.carbon b/toolchain/check/testdata/tuple/tuple_pattern.carbon index 8f99d0fbda81..074585325464 100644 --- a/toolchain/check/testdata/tuple/tuple_pattern.carbon +++ b/toolchain/check/testdata/tuple/tuple_pattern.carbon @@ -116,8 +116,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %d.patt: %pattern_type.a96 = ref_binding_pattern d [concrete] // CHECK:STDOUT: %.a7b: %pattern_type.de4 = tuple_pattern (%c.patt, %d.patt) [concrete] // CHECK:STDOUT: %.var_patt.288: %pattern_type.de4 = var_pattern %.a7b [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc8_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%v.param: %tuple.type.b6b) { @@ -210,16 +210,16 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %.loc8_34: %pattern_type.de4 = tuple_pattern (%c.patt, %d.patt) [concrete = constants.%.a7b] // CHECK:STDOUT: %.var_patt.loc8: %pattern_type.de4 = var_pattern %.loc8_34 [concrete = constants.%.var_patt.288] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %.var.loc8, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%.var.loc8) -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %.var.loc7, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%.var.loc7) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %.var.loc8, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%.var.loc8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %.var.loc7, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%.var.loc7) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %tuple.type.b6b) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8_3.2(%self.param: ref %tuple.type.b6b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -240,8 +240,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %y.patt.a7119c.1: %pattern_type.a96 = ref_binding_pattern y [concrete] // CHECK:STDOUT: %.4ca32d.1: %pattern_type.de4 = tuple_pattern (%x.patt.691773.1, %y.patt.a7119c.1) [concrete] // CHECK:STDOUT: %.var_patt.c3725e.1: %pattern_type.de4 = var_pattern %.4ca32d.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc7_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %tuple.patt.29f: %pattern_type.de4 = value_binding_pattern tuple [concrete] // CHECK:STDOUT: %x.patt.691773.2: %pattern_type.a96 = ref_binding_pattern x [concrete] // CHECK:STDOUT: %y.patt.a7119c.2: %pattern_type.a96 = ref_binding_pattern y [concrete] @@ -318,16 +318,16 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %.loc7_34: %pattern_type.de4 = tuple_pattern (%x.patt, %y.patt) [concrete = constants.%.4ca32d.1] // CHECK:STDOUT: %.var_patt: %pattern_type.de4 = var_pattern %.loc7_34 [concrete = constants.%.var_patt.c3725e.1] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc6: = bound_method %tuple.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc6: init %empty_tuple.type = call %Destroy.Op.bound.loc6(%tuple.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc6: = bound_method %tuple.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc6: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc6(%tuple.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.2(%self.param: ref %tuple.type.b6b) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_3.2(%self.param: ref %tuple.type.b6b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -388,8 +388,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %.loc14_34: %pattern_type.de4 = tuple_pattern (%x.patt, %y.patt) [concrete = constants.%.4ca32d.2] // CHECK:STDOUT: %.var_patt: %pattern_type.de4 = var_pattern %.loc14_34 [concrete = constants.%.var_patt.c3725e.2] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -418,8 +418,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %.loc22_34: %pattern_type.de4 = tuple_pattern (%x.patt, %y.patt) [concrete = constants.%.4ca32d.3] // CHECK:STDOUT: %.var_patt: %pattern_type.de4 = var_pattern %.loc22_34 [concrete = constants.%.var_patt.c3725e.3] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/destroy_control_flow.carbon b/toolchain/check/testdata/var/destroy_control_flow.carbon index 5104fc8cec37..2e8962290753 100644 --- a/toolchain/check/testdata/var/destroy_control_flow.carbon +++ b/toolchain/check/testdata/var/destroy_control_flow.carbon @@ -138,8 +138,8 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.397 = ref_binding_pattern b [concrete] // CHECK:STDOUT: %b.var_patt: %pattern_type.397 = var_pattern %b.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_5.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_5.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -183,8 +183,8 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %b.ref: ref %Destructible = name_ref b, %b // CHECK:STDOUT: %.loc11: %Destructible = ref_tag %b.ref // CHECK:STDOUT: %Use.call.loc11: init %empty_tuple.type = call %Use.ref.loc11(%b.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%b.var) // CHECK:STDOUT: br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -192,14 +192,14 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %a.ref.loc13: ref %Destructible = name_ref a, %a // CHECK:STDOUT: %.loc13: %Destructible = ref_tag %a.ref.loc13 // CHECK:STDOUT: %Use.call.loc13: init %empty_tuple.type = call %Use.ref.loc13(%a.ref.loc13) -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_5.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_5.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_5.2(%self.param: ref %Destructible) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_5.2(%self.param: ref %Destructible) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -219,8 +219,8 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.397 = ref_binding_pattern b [concrete] // CHECK:STDOUT: %b.var_patt: %pattern_type.397 = var_pattern %b.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_5.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_5.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: %c.patt: %pattern_type.397 = ref_binding_pattern c [concrete] // CHECK:STDOUT: %c.var_patt: %pattern_type.397 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } @@ -266,8 +266,8 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %b.ref: ref %Destructible = name_ref b, %b // CHECK:STDOUT: %.loc11: %Destructible = ref_tag %b.ref // CHECK:STDOUT: %Use.call.loc11: init %empty_tuple.type = call %Use.ref.loc11(%b.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%b.var) // CHECK:STDOUT: br !if.done // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -286,8 +286,8 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %c.ref: ref %Destructible = name_ref c, %c // CHECK:STDOUT: %.loc14: %Destructible = ref_tag %c.ref // CHECK:STDOUT: %Use.call.loc14: init %empty_tuple.type = call %Use.ref.loc14(%c.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call %Destroy.Op.bound.loc13(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc13: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc13: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc13(%c.var) // CHECK:STDOUT: br !if.done // CHECK:STDOUT: // CHECK:STDOUT: !if.done: @@ -295,14 +295,14 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %a.ref.loc16: ref %Destructible = name_ref a, %a // CHECK:STDOUT: %.loc16: %Destructible = ref_tag %a.ref.loc16 // CHECK:STDOUT: %Use.call.loc16: init %empty_tuple.type = call %Use.ref.loc16(%a.ref.loc16) -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_5.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_5.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_5.2(%self.param: ref %Destructible) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_5.2(%self.param: ref %Destructible) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -322,8 +322,8 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.397 = ref_binding_pattern b [concrete] // CHECK:STDOUT: %b.var_patt: %pattern_type.397 = var_pattern %b.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc10_5.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc10_5.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -367,21 +367,21 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %b.ref: ref %Destructible = name_ref b, %b // CHECK:STDOUT: %.loc11: %Destructible = ref_tag %b.ref // CHECK:STDOUT: %Use.call.loc11: init %empty_tuple.type = call %Use.ref.loc11(%b.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%b.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc7_3.1: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7_3.1: init %empty_tuple.type = call %Destroy.Op.bound.loc7_3.1(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7_3.1: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7_3.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7_3.1(%a.var) // CHECK:STDOUT: return // CHECK:STDOUT: // CHECK:STDOUT: !if.else: -// CHECK:STDOUT: %Destroy.Op.bound.loc7_3.2: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7_3.2: init %empty_tuple.type = call %Destroy.Op.bound.loc7_3.2(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7_3.2: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7_3.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7_3.2(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_5.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_5.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_5.2(%self.param: ref %Destructible) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10_5.2(%self.param: ref %Destructible) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -403,8 +403,8 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %b.var_patt: %pattern_type.397 = var_pattern %b.patt [concrete] // CHECK:STDOUT: %c.patt: %pattern_type.397 = ref_binding_pattern c [concrete] // CHECK:STDOUT: %c.var_patt: %pattern_type.397 = var_pattern %c.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc14_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc14_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -474,15 +474,15 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %c.ref: ref %Destructible = name_ref c, %c // CHECK:STDOUT: %.loc15: %Destructible = ref_tag %c.ref // CHECK:STDOUT: %Use.call.loc15: init %empty_tuple.type = call %Use.ref.loc15(%c.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc14: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc14: init %empty_tuple.type = call %Destroy.Op.bound.loc14(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc11_5.1: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc11_5.1: init %empty_tuple.type = call %Destroy.Op.bound.loc11_5.1(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc14: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc14: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc14(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11_5.1: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11_5.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11_5.1(%b.var) // CHECK:STDOUT: br !while.done // CHECK:STDOUT: // CHECK:STDOUT: !if.else: -// CHECK:STDOUT: %Destroy.Op.bound.loc11_5.2: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc11_5.2: init %empty_tuple.type = call %Destroy.Op.bound.loc11_5.2(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11_5.2: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11_5.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11_5.2(%b.var) // CHECK:STDOUT: br !while.cond // CHECK:STDOUT: // CHECK:STDOUT: !while.done: @@ -490,14 +490,14 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %a.ref.loc19: ref %Destructible = name_ref a, %a // CHECK:STDOUT: %.loc19: %Destructible = ref_tag %a.ref.loc19 // CHECK:STDOUT: %Use.call.loc19: init %empty_tuple.type = call %Use.ref.loc19(%a.ref.loc19) -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_7.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_7.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_7.2(%self.param: ref %Destructible) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_7.2(%self.param: ref %Destructible) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -519,8 +519,8 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %b.var_patt: %pattern_type.397 = var_pattern %b.patt [concrete] // CHECK:STDOUT: %c.patt: %pattern_type.397 = ref_binding_pattern c [concrete] // CHECK:STDOUT: %c.var_patt: %pattern_type.397 = var_pattern %c.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc14_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc14_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -590,15 +590,15 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %c.ref: ref %Destructible = name_ref c, %c // CHECK:STDOUT: %.loc15: %Destructible = ref_tag %c.ref // CHECK:STDOUT: %Use.call.loc15: init %empty_tuple.type = call %Use.ref.loc15(%c.ref) -// CHECK:STDOUT: %Destroy.Op.bound.loc14: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc14: init %empty_tuple.type = call %Destroy.Op.bound.loc14(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc11_5.1: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc11_5.1: init %empty_tuple.type = call %Destroy.Op.bound.loc11_5.1(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc14: = bound_method %c.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc14: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc14(%c.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11_5.1: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11_5.1: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11_5.1(%b.var) // CHECK:STDOUT: br !while.cond // CHECK:STDOUT: // CHECK:STDOUT: !if.else: -// CHECK:STDOUT: %Destroy.Op.bound.loc11_5.2: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc11_5.2: init %empty_tuple.type = call %Destroy.Op.bound.loc11_5.2(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11_5.2: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11_5.2: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11_5.2(%b.var) // CHECK:STDOUT: br !while.cond // CHECK:STDOUT: // CHECK:STDOUT: !while.done: @@ -606,14 +606,14 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: %a.ref.loc19: ref %Destructible = name_ref a, %a // CHECK:STDOUT: %.loc19: %Destructible = ref_tag %a.ref.loc19 // CHECK:STDOUT: %Use.call.loc19: init %empty_tuple.type = call %Use.ref.loc19(%a.ref.loc19) -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_7.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_7.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_7.2(%self.param: ref %Destructible) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_7.2(%self.param: ref %Destructible) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/var/fail_duplicate_decl.carbon b/toolchain/check/testdata/var/fail_duplicate_decl.carbon index 482178376888..3dce9c104d2b 100644 --- a/toolchain/check/testdata/var/fail_duplicate_decl.carbon +++ b/toolchain/check/testdata/var/fail_duplicate_decl.carbon @@ -39,8 +39,8 @@ fn Main() { // CHECK:STDOUT: %x.patt.06838d.2: %pattern_type.cb1 = ref_binding_pattern x [concrete] // CHECK:STDOUT: %x.var_patt.28d573.2: %pattern_type.cb1 = var_pattern %x.patt.06838d.2 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc11 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -91,12 +91,12 @@ fn Main() { // CHECK:STDOUT: %x.patt.loc11: %pattern_type.cb1 = ref_binding_pattern x [concrete = constants.%x.patt.06838d.2] // CHECK:STDOUT: %x.var_patt.loc11: %pattern_type.cb1 = var_pattern %x.patt.loc11 [concrete = constants.%x.var_patt.28d573.2] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %x.var.loc11, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%x.var.loc11) -// CHECK:STDOUT: %Destroy.Op.bound.loc3: = bound_method %x.var.loc3, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc3: init %empty_tuple.type = call %Destroy.Op.bound.loc3(%x.var.loc3) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc11: = bound_method %x.var.loc11, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc11: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc11(%x.var.loc11) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc3: = bound_method %x.var.loc3, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc3(%x.var.loc3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc11(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_init_with_self.carbon b/toolchain/check/testdata/var/fail_init_with_self.carbon index ce7bf45e44cc..8bc4c589808b 100644 --- a/toolchain/check/testdata/var/fail_init_with_self.carbon +++ b/toolchain/check/testdata/var/fail_init_with_self.carbon @@ -40,8 +40,8 @@ fn Main() { // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = ref_binding_pattern x [concrete] // CHECK:STDOUT: %x.var_patt: %pattern_type.cb1 = var_pattern %x.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc14 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -76,10 +76,10 @@ fn Main() { // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = ref_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: %x.var_patt: %pattern_type.cb1 = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/global_lookup_in_scope.carbon b/toolchain/check/testdata/var/global_lookup_in_scope.carbon index 243a0b8d36cc..87235b55217b 100644 --- a/toolchain/check/testdata/var/global_lookup_in_scope.carbon +++ b/toolchain/check/testdata/var/global_lookup_in_scope.carbon @@ -36,8 +36,8 @@ fn Main() { // CHECK:STDOUT: %y.patt: %pattern_type.c4c = ref_binding_pattern y [concrete] // CHECK:STDOUT: %y.var_patt: %pattern_type.c4c = var_pattern %y.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc5_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc5_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -91,14 +91,14 @@ fn Main() { // CHECK:STDOUT: %y.patt: %pattern_type.c4c = ref_binding_pattern y [concrete = constants.%y.patt] // CHECK:STDOUT: %y.var_patt: %pattern_type.c4c = var_pattern %y.patt [concrete = constants.%y.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %y.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%y.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %y.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%y.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_3.1(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_3.1(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_3.2(%self.param: ref %struct_type.v) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_3.2(%self.param: ref %struct_type.v) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/var/initialization.carbon b/toolchain/check/testdata/var/initialization.carbon index 6fa47a1423ae..1b9979422924 100644 --- a/toolchain/check/testdata/var/initialization.carbon +++ b/toolchain/check/testdata/var/initialization.carbon @@ -74,8 +74,8 @@ fn Main() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = ref_binding_pattern x [concrete] // CHECK:STDOUT: %x.var_patt: %pattern_type.cb1 = var_pattern %x.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc8 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() { @@ -94,12 +94,12 @@ fn Main() { // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = ref_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: %x.var_patt: %pattern_type.cb1 = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- uninitialized.carbon // CHECK:STDOUT: @@ -114,8 +114,8 @@ fn Main() { // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %empty_tuple.type, (%DefaultOrUnformed.impl_witness) [concrete] // CHECK:STDOUT: %empty_tuple.type.as.DefaultOrUnformed.impl.Op.type: type = fn_type @empty_tuple.type.as.DefaultOrUnformed.impl.Op [concrete] // CHECK:STDOUT: %empty_tuple.type.as.DefaultOrUnformed.impl.Op: %empty_tuple.type.as.DefaultOrUnformed.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc8 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -141,10 +141,10 @@ fn Main() { // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = ref_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: %x.var_patt: %pattern_type.cb1 = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/lifetime.carbon b/toolchain/check/testdata/var/lifetime.carbon index 5cb0b6e0a550..851251e3d869 100644 --- a/toolchain/check/testdata/var/lifetime.carbon +++ b/toolchain/check/testdata/var/lifetime.carbon @@ -62,9 +62,9 @@ fn F() { // CHECK:STDOUT: %A.as.Copy.impl.Op.bound: = bound_method %A.val, %A.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.9ef = ref_binding_pattern b [concrete] // CHECK:STDOUT: %b.var_patt: %pattern_type.9ef = var_pattern %b.patt [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc16_25.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.367, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc16_25.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.367, %Destroy.WithSelf.Op.403171.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -119,19 +119,19 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.ref() -// CHECK:STDOUT: %Destroy.Op.call.loc16_25: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) -// CHECK:STDOUT: %Destroy.Op.bound.loc16: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc16_3: init %empty_tuple.type = call %Destroy.Op.bound.loc16(%b.var) -// CHECK:STDOUT: %Destroy.Op.call.loc15_34: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) -// CHECK:STDOUT: %Destroy.Op.call.loc15_25: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) -// CHECK:STDOUT: %Destroy.Op.bound.loc15: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call.loc15_3: init %empty_tuple.type = call %Destroy.Op.bound.loc15(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc16_25: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.367) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc16: = bound_method %b.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc16_3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc16(%b.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc15_34: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.367) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc15_25: init %empty_tuple.type = call constants.%Destroy.WithSelf.Op.bound(constants.%.367) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc15: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc15_3: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc15(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_25.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_25.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16_25.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16_25.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/var/lookup.carbon b/toolchain/check/testdata/var/lookup.carbon index eb414270ebc4..735dff00b861 100644 --- a/toolchain/check/testdata/var/lookup.carbon +++ b/toolchain/check/testdata/var/lookup.carbon @@ -28,8 +28,8 @@ fn Main() { // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = ref_binding_pattern x [concrete] // CHECK:STDOUT: %x.var_patt: %pattern_type.cb1 = var_pattern %x.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc16 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -67,10 +67,10 @@ fn Main() { // CHECK:STDOUT: %x.var_patt: %pattern_type.cb1 = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref: ref %empty_tuple.type = name_ref x, %x -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc16(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/shadowing.carbon b/toolchain/check/testdata/var/shadowing.carbon index a63f5994e3e3..4c9eb00d5642 100644 --- a/toolchain/check/testdata/var/shadowing.carbon +++ b/toolchain/check/testdata/var/shadowing.carbon @@ -45,8 +45,8 @@ fn Main() { // CHECK:STDOUT: %x.patt.06838d.2: %pattern_type.cb1 = ref_binding_pattern x [concrete] // CHECK:STDOUT: %x.var_patt.28d573.2: %pattern_type.cb1 = var_pattern %x.patt.06838d.2 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc10 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -127,17 +127,17 @@ fn Main() { // CHECK:STDOUT: %.loc13_10.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc13_7: init %empty_tuple.type = converted %.loc13_10.1, %.loc13_10.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: assign %x.ref, %.loc13_7 -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %x.var.loc10, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%x.var.loc10) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc10: = bound_method %x.var.loc10, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc10: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc10(%x.var.loc10) // CHECK:STDOUT: br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.else: -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %x.var.loc8, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%x.var.loc8) -// CHECK:STDOUT: %Destroy.Op.bound.loc5: = bound_method %NS.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc5: init %empty_tuple.type = call %Destroy.Op.bound.loc5(%NS.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8: = bound_method %x.var.loc8, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8(%x.var.loc8) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc5: = bound_method %NS.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc5: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc5(%NS.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc10(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/var_pattern.carbon b/toolchain/check/testdata/var/var_pattern.carbon index b59fab70449b..df31c212af9a 100644 --- a/toolchain/check/testdata/var/var_pattern.carbon +++ b/toolchain/check/testdata/var/var_pattern.carbon @@ -188,8 +188,8 @@ fn Call() { // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = ref_binding_pattern x [concrete] // CHECK:STDOUT: %x.var_patt: %pattern_type.cb1 = var_pattern %x.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -226,12 +226,12 @@ fn Call() { // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = ref_binding_pattern x [concrete = constants.%x.patt] // CHECK:STDOUT: %x.var_patt: %pattern_type.cb1 = var_pattern %x.patt [concrete = constants.%x.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %x.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%x.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- var_in_tuple.carbon // CHECK:STDOUT: @@ -249,8 +249,8 @@ fn Call() { // CHECK:STDOUT: %.5ae: %pattern_type.5b8 = tuple_pattern (%x.patt, %y.var_patt) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%empty_tuple, %empty_tuple) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc5 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -298,12 +298,12 @@ fn Call() { // CHECK:STDOUT: %y.var_patt: %pattern_type.cb1 = var_pattern %y.patt [concrete = constants.%y.var_patt] // CHECK:STDOUT: %.loc5_38: %pattern_type.5b8 = tuple_pattern (%x.patt, %y.var_patt) [concrete = constants.%.5ae] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %y.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%y.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %y.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%y.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- tuple_in_var.carbon // CHECK:STDOUT: @@ -321,8 +321,8 @@ fn Call() { // CHECK:STDOUT: %.var_patt: %pattern_type.5b8 = var_pattern %.8b4 [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%empty_tuple, %empty_tuple) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc5_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc5_3.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -378,14 +378,14 @@ fn Call() { // CHECK:STDOUT: %.loc5_34: %pattern_type.5b8 = tuple_pattern (%x.patt, %y.patt) [concrete = constants.%.8b4] // CHECK:STDOUT: %.var_patt: %pattern_type.5b8 = var_pattern %.loc5_34 [concrete = constants.%.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_3.1(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_3.1(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_3.2(%self.param: ref %tuple.type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_3.2(%self.param: ref %tuple.type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -406,8 +406,8 @@ fn Call() { // CHECK:STDOUT: %.var_patt: %pattern_type.5b8 = var_pattern %.8b4 [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%empty_tuple, %empty_tuple) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc5_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc5_7.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -463,14 +463,14 @@ fn Call() { // CHECK:STDOUT: %.loc5_38: %pattern_type.5b8 = tuple_pattern (%x.patt, %y.patt) [concrete = constants.%.8b4] // CHECK:STDOUT: %.var_patt: %pattern_type.5b8 = var_pattern %.loc5_38 [concrete = constants.%.var_patt] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_7.1(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_7.1(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_7.2(%self.param: ref %tuple.type) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_7.2(%self.param: ref %tuple.type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -492,8 +492,8 @@ fn Call() { // CHECK:STDOUT: %v.patt: %pattern_type.cb1 = ref_binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: %pattern_type.cb1 = var_pattern %v.patt [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc4 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -562,14 +562,14 @@ fn Call() { // CHECK:STDOUT: %.loc4: init %empty_tuple.type = converted %.loc8_9.1, %.loc8_9.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: assign %y.var, %.loc4 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref(%.loc8_5, %y.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc4: = bound_method %y.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc4: init %empty_tuple.type = call %Destroy.Op.bound.loc4(%y.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %v.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc7: init %empty_tuple.type = call %Destroy.Op.bound.loc7(%v.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc4: = bound_method %y.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc4: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc4(%y.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc7: = bound_method %v.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc7(%v.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc4(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- public_function.carbon // CHECK:STDOUT: @@ -690,16 +690,16 @@ fn Call() { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Self: %Destroy.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Destroy.WithSelf.Op.42b: %Destroy.WithSelf.Op.type.d3e = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.assoc_type: type = assoc_entity_type @Destroy [concrete] // CHECK:STDOUT: %assoc0: %Destroy.assoc_type = assoc_entity element0, imports.%Core.import_ref.918 [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df9: = custom_witness (%Destroy.Op), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.5ad: %Destroy.type = facet_value %empty_tuple.type, (%custom_witness.df9) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.869: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.5ad) [concrete] -// CHECK:STDOUT: %.6ff: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.869, %Destroy.facet.5ad [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6c4: = custom_witness (%Destroy.WithSelf.Op.403), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.eb5: %Destroy.type = facet_value %empty_tuple.type, (%custom_witness.6c4) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2c7: type = fn_type @Destroy.WithSelf.Op.1, @Destroy.WithSelf(%Destroy.facet.eb5) [concrete] +// CHECK:STDOUT: %.59e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.2c7, %Destroy.facet.eb5 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -743,15 +743,15 @@ fn Call() { // CHECK:STDOUT: assign %y.var, %.1 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref(%.loc7_8.2, %y.var) // CHECK:STDOUT: %Op.ref: %Destroy.assoc_type = name_ref Op, imports.%Core.import_ref.c64 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.6ff = impl_witness_access constants.%custom_witness.df9, element0 [concrete = constants.%Destroy.Op] +// CHECK:STDOUT: %impl.elem0: %.59e = impl_witness_access constants.%custom_witness.6c4, element0 [concrete = constants.%Destroy.WithSelf.Op.403] // CHECK:STDOUT: %bound_method: = bound_method %y.var, %impl.elem0 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %bound_method(%y.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method(%y.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F [from "public_function.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.2(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- fail_nested.carbon // CHECK:STDOUT: @@ -864,8 +864,8 @@ fn Call() { // CHECK:STDOUT: %pattern_type.8c1: type = pattern_type %tuple.type [concrete] // CHECK:STDOUT: %.b14: %pattern_type.8c1 = tuple_pattern (%x.patt, %y.var_patt, %z.patt) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef0: type = fn_type @Destroy.WithSelf.Op.loc8 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403: %Destroy.WithSelf.Op.type.ef0 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -940,16 +940,16 @@ fn Call() { // CHECK:STDOUT: %z.patt: %pattern_type.cb1 = value_binding_pattern z [concrete = constants.%z.patt] // CHECK:STDOUT: %.loc8_52: %pattern_type.8c1 = tuple_pattern (%x.patt, %y.var_patt, %z.patt) [concrete = constants.%.b14] // CHECK:STDOUT: } -// CHECK:STDOUT: %Destroy.Op.bound.loc8_69: = bound_method %.loc8_69.2, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc8_69: init %empty_tuple.type = call %Destroy.Op.bound.loc8_69(%.loc8_69.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc8_59: = bound_method %.loc8_59.2, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc8_59: init %empty_tuple.type = call %Destroy.Op.bound.loc8_59(%.loc8_59.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc8_22: = bound_method %y.var, constants.%Destroy.Op -// CHECK:STDOUT: %Destroy.Op.call.loc8_22: init %empty_tuple.type = call %Destroy.Op.bound.loc8_22(%y.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8_69: = bound_method %.loc8_69.2, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8_69: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8_69(%.loc8_69.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8_59: = bound_method %.loc8_59.2, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8_59: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8_59(%.loc8_59.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound.loc8_22: = bound_method %y.var, constants.%Destroy.WithSelf.Op.403 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8_22: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound.loc8_22(%y.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %empty_tuple.type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc8(%self.param: ref %empty_tuple.type) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- var_param_from_init.carbon // CHECK:STDOUT: @@ -964,8 +964,8 @@ fn Call() { // CHECK:STDOUT: %TakeVar: %TakeVar.type = struct_value () [concrete] // CHECK:STDOUT: %MakeInit.type: type = fn_type @MakeInit [concrete] // CHECK:STDOUT: %MakeInit: %MakeInit.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc7_12.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -989,14 +989,14 @@ fn Call() { // CHECK:STDOUT: %MakeInit.call: init %X to %a.var = call %MakeInit.ref() // CHECK:STDOUT: assign %a.var, %MakeInit.call // CHECK:STDOUT: %TakeVar.call: init %empty_tuple.type = call %TakeVar.ref(%a.var) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %a.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_12.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_12.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_12.2(%self.param: ref %X) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc7_12.2(%self.param: ref %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1028,8 +1028,8 @@ fn Call() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_123.2bf: %i32 = int_value 123 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc5_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc5_12.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1063,14 +1063,14 @@ fn Call() { // CHECK:STDOUT: %n.var: ref %i32 = var_storage @TakeVar.%n.param_patt // CHECK:STDOUT: assign %n.var, %.loc5 // CHECK:STDOUT: %TakeVar.call: init %empty_tuple.type = call %TakeVar.ref(%n.var) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %n.var, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%n.var) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %n.var, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%n.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_12.1(%self.param: ref %i32.builtin) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_12.1(%self.param: ref %i32.builtin) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_12.2(%self.param: ref %i32) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc5_12.2(%self.param: ref %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/while/lifetime.carbon b/toolchain/check/testdata/while/lifetime.carbon index cb4ec3d71d1e..85f75fa238d0 100644 --- a/toolchain/check/testdata/while/lifetime.carbon +++ b/toolchain/check/testdata/while/lifetime.carbon @@ -42,8 +42,8 @@ fn F() { // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc14_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef016f.2: type = fn_type @Destroy.WithSelf.Op.loc14_15.2 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.403171.2: %Destroy.WithSelf.Op.type.ef016f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -59,8 +59,8 @@ fn F() { // CHECK:STDOUT: %A.F.call: init bool = call %F.ref() // CHECK:STDOUT: %.loc14_20.1: bool = value_of_initializer %A.F.call // CHECK:STDOUT: %.loc14_20.2: bool = converted %A.F.call, %.loc14_20.1 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc14_15.2, constants.%Destroy.Op.1a2547.2 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc14_15.2) +// CHECK:STDOUT: %Destroy.WithSelf.Op.bound: = bound_method %.loc14_15.2, constants.%Destroy.WithSelf.Op.403171.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %Destroy.WithSelf.Op.bound(%.loc14_15.2) // CHECK:STDOUT: if %.loc14_20.2 br !while.body else br !while.done // CHECK:STDOUT: // CHECK:STDOUT: !while.body: @@ -72,9 +72,9 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_15.1(%self.param: ref %empty_struct_type) = "no_op"; +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_15.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_15.2(%self.param: ref %A) { +// CHECK:STDOUT: fn @Destroy.WithSelf.Op.loc14_15.2(%self.param: ref %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon b/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon index 5a34a397c080..cb448db453c7 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon @@ -82,7 +82,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } @@ -116,7 +116,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !31 = !DILocation(line: 16, column: 5, scope: !21) // CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) // CHECK:STDOUT: !36 = !{!22} -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) // CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_default.carbon b/toolchain/driver/testdata/compile/optimize/optimize_default.carbon index e2af8e1e8a48..0922b02a2468 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_default.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_default.carbon @@ -82,7 +82,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } @@ -116,7 +116,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !31 = !DILocation(line: 16, column: 5, scope: !21) // CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) // CHECK:STDOUT: !36 = !{!22} -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) // CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_none.carbon b/toolchain/driver/testdata/compile/optimize/optimize_none.carbon index fee41bef7695..dec059c9400b 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_none.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_none.carbon @@ -77,12 +77,12 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: br label %while.cond, !dbg !34 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !24 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !24 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } @@ -150,7 +150,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !21) // CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) // CHECK:STDOUT: !36 = !{!22} -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) // CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_size.carbon b/toolchain/driver/testdata/compile/optimize/optimize_size.carbon index dce9a776f846..9a047e18e66e 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_size.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_size.carbon @@ -76,12 +76,12 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: br label %while.cond, !dbg !34 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !24 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !24 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } @@ -150,7 +150,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !21) // CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) // CHECK:STDOUT: !36 = !{!22} -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) // CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon b/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon index 5be192704986..8eb194d58417 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon @@ -98,7 +98,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } @@ -131,7 +131,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !31 = !DILocation(line: 16, column: 5, scope: !21) // CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) // CHECK:STDOUT: !36 = !{!22} -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) // CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} diff --git a/toolchain/lower/file_context.cpp b/toolchain/lower/file_context.cpp index 8f5f0ad7ec36..a65e792d5054 100644 --- a/toolchain/lower/file_context.cpp +++ b/toolchain/lower/file_context.cpp @@ -424,7 +424,8 @@ auto FileContext::BuildFunctionDecl(SemIR::FunctionId function_id, } // Don't lower builtins. - if (function.builtin_function_kind() != SemIR::BuiltinFunctionKind::None) { + if (function.GetBuiltinFunctionKind(sem_ir()) != + SemIR::BuiltinFunctionKind::None) { return std::nullopt; } @@ -562,11 +563,11 @@ auto FileContext::BuildFunctionBody(SemIR::FunctionId function_id, // Specific functions are emitted in each file they are referenced in. linkage = llvm::Function::LinkOnceODRLinkage; } else if (declaration_function.special_function_kind == - SemIR::Function::SpecialFunctionKind::CoreWitness || + SemIR::Function::SpecialFunctionKind::Generated || declaration_function.special_function_kind == SemIR::Function::SpecialFunctionKind::Thunk) { - // TODO: Emit CoreWitness functions and thunks in files where they're called - // instead of in files where they're defined. That should allow + // TODO: Emit custom witness functions and thunks in files where they're + // called instead of in files where they're defined. That should allow // LinkOnceODRLinkage. linkage = llvm::Function::WeakODRLinkage; } diff --git a/toolchain/lower/handle_call.cpp b/toolchain/lower/handle_call.cpp index fd085f5b57c5..9cbfe964bc3e 100644 --- a/toolchain/lower/handle_call.cpp +++ b/toolchain/lower/handle_call.cpp @@ -724,7 +724,7 @@ auto HandleInst(FunctionContext& context, SemIR::InstId inst_id, callee_function.function_id, callee_function.resolved_specific_id); - if (auto builtin_kind = function.builtin_function_kind(); + if (auto builtin_kind = function.GetBuiltinFunctionKind(*callee.file); builtin_kind != SemIR::BuiltinFunctionKind::None) { HandleBuiltinCall(context, inst_id, builtin_kind, arg_ids); return; diff --git a/toolchain/lower/testdata/array/array_in_place.carbon b/toolchain/lower/testdata/array/array_in_place.carbon index 0014d6d661b2..25bb2e3812e6 100644 --- a/toolchain/lower/testdata/array/array_in_place.carbon +++ b/toolchain/lower/testdata/array/array_in_place.carbon @@ -31,24 +31,24 @@ fn G() { // CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_47.6.array.index), !dbg !33 // CHECK:STDOUT: %.loc16_47.5.array.index = getelementptr inbounds [2 x { i32, i32, i32 }], ptr %_.var, i32 0, i64 1, !dbg !32 // CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_47.5.array.index), !dbg !34 -// CHECK:STDOUT: call void @"_COp.338262943cb44ff5:core.Destroy.Core"(ptr %_.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.133da171e935f2c5:core.Destroy.Core"(ptr %_.var), !dbg !31 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.338262943cb44ff5:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.133da171e935f2c5:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } @@ -80,15 +80,15 @@ fn G() { // CHECK:STDOUT: !33 = !DILocation(line: 16, column: 39, scope: !30) // CHECK:STDOUT: !34 = !DILocation(line: 16, column: 44, scope: !30) // CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) // CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !21) // CHECK:STDOUT: !43 = !DILocation(line: 16, column: 3, scope: !41) // CHECK:STDOUT: !44 = !{!42} -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.338262943cb44ff5:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.133da171e935f2c5:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) // CHECK:STDOUT: !47 = !DILocation(line: 16, column: 3, scope: !45) // CHECK:STDOUT: !48 = !{!46} diff --git a/toolchain/lower/testdata/array/assign_return_value.carbon b/toolchain/lower/testdata/array/assign_return_value.carbon index 1cd7cfb6a327..f63afdbf33fa 100644 --- a/toolchain/lower/testdata/array/assign_return_value.carbon +++ b/toolchain/lower/testdata/array/assign_return_value.carbon @@ -47,25 +47,25 @@ fn Run() { // CHECK:STDOUT: %.loc16_28.6 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !37 // CHECK:STDOUT: %.loc16_28.7.array.index = getelementptr inbounds [2 x i32], ptr %_.var, i32 0, i64 1, !dbg !37 // CHECK:STDOUT: store i32 %.loc16_28.6, ptr %.loc16_28.7.array.index, align 4, !dbg !37 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc16_28.1.temp), !dbg !37 -// CHECK:STDOUT: call void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %_.var), !dbg !36 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %.loc16_28.1.temp), !dbg !37 +// CHECK:STDOUT: call void @"_COp.8014ee1b1a984df0:core.Destroy.Core"(ptr %_.var), !dbg !36 // CHECK:STDOUT: ret i32 0, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %self) #0 !dbg !48 { +// CHECK:STDOUT: define weak_odr void @"_COp.8014ee1b1a984df0:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } @@ -106,15 +106,15 @@ fn Run() { // CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !35) // CHECK:STDOUT: !37 = !DILocation(line: 16, column: 26, scope: !35) // CHECK:STDOUT: !39 = !DILocation(line: 15, column: 1, scope: !35) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) // CHECK:STDOUT: !42 = !DILocation(line: 16, column: 26, scope: !40) // CHECK:STDOUT: !43 = !{!41} -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !21) // CHECK:STDOUT: !46 = !DILocation(line: 16, column: 26, scope: !44) // CHECK:STDOUT: !47 = !{!45} -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bdc700786da40234:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !51) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8014ee1b1a984df0:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !51) // CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !21) // CHECK:STDOUT: !50 = !DILocation(line: 16, column: 3, scope: !48) // CHECK:STDOUT: !51 = !{!49} diff --git a/toolchain/lower/testdata/array/base.carbon b/toolchain/lower/testdata/array/base.carbon index fb4106b66043..a4770b5cf006 100644 --- a/toolchain/lower/testdata/array/base.carbon +++ b/toolchain/lower/testdata/array/base.carbon @@ -67,52 +67,52 @@ fn Run() { // CHECK:STDOUT: %.loc18_26.7 = load i32, ptr %tuple.elem2.loc18.tuple.elem, align 4, !dbg !56 // CHECK:STDOUT: %.loc18_26.8.array.index = getelementptr inbounds [3 x i32], ptr %_.var.loc18, i32 0, i64 2, !dbg !56 // CHECK:STDOUT: store i32 %.loc18_26.7, ptr %.loc18_26.8.array.index, align 4, !dbg !56 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %_.var.loc18), !dbg !55 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %d.var), !dbg !52 -// CHECK:STDOUT: call void @"_COp.04d2b1153eb4b676:core.Destroy.Core"(ptr %_.var.loc16), !dbg !49 -// CHECK:STDOUT: call void @"_COp.d8cac0765303fe17:core.Destroy.Core"(ptr %_.var.loc15), !dbg !46 -// CHECK:STDOUT: call void @"_COp.7f998d5ee0e4ec3f:core.Destroy.Core"(ptr %_.var.loc14), !dbg !43 +// CHECK:STDOUT: call void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr %_.var.loc18), !dbg !55 +// CHECK:STDOUT: call void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %d.var), !dbg !52 +// CHECK:STDOUT: call void @"_COp.c135263f75f7214d:core.Destroy.Core"(ptr %_.var.loc16), !dbg !49 +// CHECK:STDOUT: call void @"_COp.8815565a27e3ec8c:core.Destroy.Core"(ptr %_.var.loc15), !dbg !46 +// CHECK:STDOUT: call void @"_COp.d277540f487baeed:core.Destroy.Core"(ptr %_.var.loc14), !dbg !43 // CHECK:STDOUT: ret i32 0, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !63 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr %self) #0 !dbg !63 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !67 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !67 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.04d2b1153eb4b676:core.Destroy.Core"(ptr %self) #0 !dbg !71 { +// CHECK:STDOUT: define weak_odr void @"_COp.c135263f75f7214d:core.Destroy.Core"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !75 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !75 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8cac0765303fe17:core.Destroy.Core"(ptr %self) #0 !dbg !79 { +// CHECK:STDOUT: define weak_odr void @"_COp.8815565a27e3ec8c:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7f998d5ee0e4ec3f:core.Destroy.Core"(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define weak_odr void @"_COp.d277540f487baeed:core.Destroy.Core"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } @@ -157,31 +157,31 @@ fn Run() { // CHECK:STDOUT: !55 = !DILocation(line: 18, column: 3, scope: !42) // CHECK:STDOUT: !56 = !DILocation(line: 18, column: 26, scope: !42) // CHECK:STDOUT: !58 = !DILocation(line: 13, column: 1, scope: !42) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 18, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !62) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !32, line: 18, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !62) // CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !34) // CHECK:STDOUT: !61 = !DILocation(line: 18, column: 3, scope: !59) // CHECK:STDOUT: !62 = !{!60} -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !32, line: 18, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !66) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc7dedd104b837b2:core.Destroy.Core", scope: null, file: !32, line: 18, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !66) // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !39) // CHECK:STDOUT: !65 = !DILocation(line: 18, column: 3, scope: !63) // CHECK:STDOUT: !66 = !{!64} -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !32, line: 17, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !70) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !32, line: 17, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !70) // CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !39) // CHECK:STDOUT: !69 = !DILocation(line: 17, column: 3, scope: !67) // CHECK:STDOUT: !70 = !{!68} -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.04d2b1153eb4b676:core.Destroy.Core", scope: null, file: !32, line: 16, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !74) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c135263f75f7214d:core.Destroy.Core", scope: null, file: !32, line: 16, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !74) // CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !39) // CHECK:STDOUT: !73 = !DILocation(line: 16, column: 3, scope: !71) // CHECK:STDOUT: !74 = !{!72} -// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 15, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !78) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !32, line: 15, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !78) // CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !39) // CHECK:STDOUT: !77 = !DILocation(line: 15, column: 3, scope: !75) // CHECK:STDOUT: !78 = !{!76} -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8cac0765303fe17:core.Destroy.Core", scope: null, file: !32, line: 15, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !82) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8815565a27e3ec8c:core.Destroy.Core", scope: null, file: !32, line: 15, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !82) // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !39) // CHECK:STDOUT: !81 = !DILocation(line: 15, column: 3, scope: !79) // CHECK:STDOUT: !82 = !{!80} -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7f998d5ee0e4ec3f:core.Destroy.Core", scope: null, file: !32, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !86) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d277540f487baeed:core.Destroy.Core", scope: null, file: !32, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !86) // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !39) // CHECK:STDOUT: !85 = !DILocation(line: 14, column: 3, scope: !83) // CHECK:STDOUT: !86 = !{!84} diff --git a/toolchain/lower/testdata/array/function_param.carbon b/toolchain/lower/testdata/array/function_param.carbon index de745c190e7a..3e29c631c0b3 100644 --- a/toolchain/lower/testdata/array/function_param.carbon +++ b/toolchain/lower/testdata/array/function_param.carbon @@ -42,18 +42,18 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc18_20.7.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_20.3.temp, i32 0, i64 1, !dbg !44 // CHECK:STDOUT: %.loc18_20.10.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_20.3.temp, i32 0, i64 2, !dbg !44 // CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr @array.loc18_20.15, i32 1), !dbg !45 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !44 +// CHECK:STDOUT: call void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr @array), !dbg !44 // CHECK:STDOUT: ret i32 %F.call, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } @@ -91,11 +91,11 @@ fn G() -> i32 { // CHECK:STDOUT: !44 = !DILocation(line: 18, column: 12, scope: !41) // CHECK:STDOUT: !45 = !DILocation(line: 18, column: 10, scope: !41) // CHECK:STDOUT: !46 = !DILocation(line: 18, column: 3, scope: !41) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !50) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !50) // CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !20) // CHECK:STDOUT: !49 = !DILocation(line: 18, column: 12, scope: !47) // CHECK:STDOUT: !50 = !{!48} -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !18, line: 18, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc7dedd104b837b2:core.Destroy.Core", scope: null, file: !18, line: 18, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !21) // CHECK:STDOUT: !53 = !DILocation(line: 18, column: 12, scope: !51) // CHECK:STDOUT: !54 = !{!52} diff --git a/toolchain/lower/testdata/array/iterate.carbon b/toolchain/lower/testdata/array/iterate.carbon index 0e5f54aa8cfb..dc04be6baa1a 100644 --- a/toolchain/lower/testdata/array/iterate.carbon +++ b/toolchain/lower/testdata/array/iterate.carbon @@ -41,185 +41,179 @@ fn F() { // CHECK:STDOUT: %.loc16_43.13.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 3, !dbg !15 // CHECK:STDOUT: %.loc16_43.16.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 4, !dbg !15 // CHECK:STDOUT: %.loc16_43.19.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 5, !dbg !15 -// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr @array.loc16_43.24), !dbg !20 +// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.b21ad873d2e8cb91"(ptr @array.loc16_43.24), !dbg !20 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !20 // CHECK:STDOUT: store i32 %array_type.as.Iterate.impl.NewCursor.call, ptr %var, align 4, !dbg !20 // CHECK:STDOUT: br label %for.next, !dbg !20 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_19.5.temp), !dbg !20 -// CHECK:STDOUT: call void @"_CNext.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr %.loc17_19.5.temp, ptr @array.loc16_43.24, ptr %var), !dbg !20 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %.loc17_19.5.temp), !dbg !20 +// CHECK:STDOUT: call void @"_CNext.e163a239f9fa927c:Iterate.Core.b21ad873d2e8cb91"(ptr %.loc17_19.5.temp, ptr @array.loc16_43.24, ptr %var), !dbg !20 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.63bc0bf740b17859(ptr %.loc17_19.5.temp), !dbg !20 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !20 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %.loc17_19.5.temp), !dbg !20 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.63bc0bf740b17859(ptr %.loc17_19.5.temp), !dbg !20 // CHECK:STDOUT: call void @_CG.Main(i32 %Optional.Get.call), !dbg !28 -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc17_19.5.temp), !dbg !20 +// CHECK:STDOUT: call void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %.loc17_19.5.temp), !dbg !20 // CHECK:STDOUT: br label %for.next, !dbg !29 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc17_19.5.temp), !dbg !20 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var), !dbg !20 -// CHECK:STDOUT: call void @"_COp.fd19f3506b5fdce5:core.Destroy.Core"(ptr @array), !dbg !15 +// CHECK:STDOUT: call void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %.loc17_19.5.temp), !dbg !20 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %var), !dbg !20 +// CHECK:STDOUT: call void @"_COp.1366a4d5330239bd:core.Destroy.Core"(ptr @array), !dbg !15 // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.6f4dee545ed23f91:core.Destroy.Core"(ptr) +// CHECK:STDOUT: declare void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.1d6a7672bf2f14c6:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.c1dffdf44e31057b:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.271d79a4f33942b3:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.aef98596d3a9e1eb:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5432973a0cb6f903:core.Destroy.Core"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define weak_odr void @"_COp.1366a4d5330239bd:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fd19f3506b5fdce5:core.Destroy.Core"(ptr %self) #0 !dbg !55 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !57 -// CHECK:STDOUT: } -// CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr %self) #0 !dbg !60 { -// CHECK:STDOUT: ret i32 0, !dbg !65 +// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.b21ad873d2e8cb91"(ptr %self) #0 !dbg !56 { +// CHECK:STDOUT: ret i32 0, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !67 { -// CHECK:STDOUT: %1 = load i32, ptr %cursor, align 4, !dbg !75 -// CHECK:STDOUT: %2 = icmp slt i32 %1, 6, !dbg !75 -// CHECK:STDOUT: br i1 %2, label %3, label %7, !dbg !76 +// CHECK:STDOUT: define linkonce_odr void @"_CNext.e163a239f9fa927c:Iterate.Core.b21ad873d2e8cb91"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !63 { +// CHECK:STDOUT: %1 = load i32, ptr %cursor, align 4, !dbg !71 +// CHECK:STDOUT: %2 = icmp slt i32 %1, 6, !dbg !71 +// CHECK:STDOUT: br i1 %2, label %3, label %7, !dbg !72 // CHECK:STDOUT: // CHECK:STDOUT: 3: ; preds = %0 -// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !79 -// CHECK:STDOUT: %4 = load i32, ptr %cursor, align 4, !dbg !82 -// CHECK:STDOUT: %5 = sub i32 %4, 1, !dbg !82 -// CHECK:STDOUT: %array.index = getelementptr inbounds [6 x i32], ptr %self, i32 0, i32 %5, !dbg !80 -// CHECK:STDOUT: %6 = load i32, ptr %array.index, align 4, !dbg !80 -// CHECK:STDOUT: call void @_CSome.Optional.Core.a5214d4ceffb522b(ptr %return, i32 %6), !dbg !83 -// CHECK:STDOUT: ret void, !dbg !86 +// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !75 +// CHECK:STDOUT: %4 = load i32, ptr %cursor, align 4, !dbg !78 +// CHECK:STDOUT: %5 = sub i32 %4, 1, !dbg !78 +// CHECK:STDOUT: %array.index = getelementptr inbounds [6 x i32], ptr %self, i32 0, i32 %5, !dbg !76 +// CHECK:STDOUT: %6 = load i32, ptr %array.index, align 4, !dbg !76 +// CHECK:STDOUT: call void @_CSome.Optional.Core.63bc0bf740b17859(ptr %return, i32 %6), !dbg !79 +// CHECK:STDOUT: ret void, !dbg !82 // CHECK:STDOUT: // CHECK:STDOUT: 7: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.a5214d4ceffb522b(ptr %return), !dbg !87 -// CHECK:STDOUT: ret void, !dbg !90 +// CHECK:STDOUT: call void @_CNone.Optional.Core.63bc0bf740b17859(ptr %return), !dbg !83 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !93 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !99 -// CHECK:STDOUT: ret i1 %1, !dbg !100 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.63bc0bf740b17859(ptr %self) #0 !dbg !89 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %self), !dbg !95 +// CHECK:STDOUT: ret i1 %1, !dbg !96 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !102 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !108 -// CHECK:STDOUT: ret i32 %1, !dbg !109 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.63bc0bf740b17859(ptr %self) #0 !dbg !98 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %self), !dbg !104 +// CHECK:STDOUT: ret i32 %1, !dbg !105 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !112 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !115 -// CHECK:STDOUT: ret void, !dbg !118 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !108 { +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !111 +// CHECK:STDOUT: ret void, !dbg !114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !120 { -// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return, i32 %value), !dbg !125 -// CHECK:STDOUT: ret void, !dbg !126 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.63bc0bf740b17859(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !116 { +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %return, i32 %value), !dbg !121 +// CHECK:STDOUT: ret void, !dbg !122 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !128 { -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return), !dbg !131 -// CHECK:STDOUT: ret void, !dbg !132 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.63bc0bf740b17859(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !124 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %return), !dbg !127 +// CHECK:STDOUT: ret void, !dbg !128 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !133 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !138 -// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !138 -// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !138 -// CHECK:STDOUT: ret i1 %2, !dbg !139 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %value) #0 !dbg !129 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !134 +// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !134 +// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !134 +// CHECK:STDOUT: ret i1 %2, !dbg !135 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !141 { -// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !146 -// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !146 -// CHECK:STDOUT: ret i32 %1, !dbg !147 +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %value) #0 !dbg !137 { +// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !142 +// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !142 +// CHECK:STDOUT: ret i32 %1, !dbg !143 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !149 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !152 -// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !153 -// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !153 -// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !153 -// CHECK:STDOUT: ret void, !dbg !153 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !145 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !148 +// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !149 +// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !149 +// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !149 +// CHECK:STDOUT: ret void, !dbg !149 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !157 { -// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !166 -// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !166 -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !168 -// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !168 -// CHECK:STDOUT: ret void, !dbg !169 +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !153 { +// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !162 +// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !162 +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !164 +// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !164 +// CHECK:STDOUT: ret void, !dbg !165 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !171 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !178 -// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !178 -// CHECK:STDOUT: ret void, !dbg !179 +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !167 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !174 +// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !174 +// CHECK:STDOUT: ret void, !dbg !175 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !180 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !185 -// CHECK:STDOUT: ret i32 %1, !dbg !187 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !176 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !181 +// CHECK:STDOUT: ret i32 %1, !dbg !183 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !189 { -// CHECK:STDOUT: ret i32 %self, !dbg !195 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !185 { +// CHECK:STDOUT: ret i32 %self, !dbg !191 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.79101dbcae945290:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.1423d794a4867d77:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -253,117 +247,113 @@ fn F() { // CHECK:STDOUT: !28 = !DILocation(line: 18, column: 5, scope: !14) // CHECK:STDOUT: !29 = !DILocation(line: 17, column: 3, scope: !14) // CHECK:STDOUT: !30 = !DILocation(line: 15, column: 1, scope: !14) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 17, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !6) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1d6a7672bf2f14c6:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !11) // CHECK:STDOUT: !33 = !DILocation(line: 17, column: 7, scope: !31) // CHECK:STDOUT: !34 = !{!32} -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !11) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c1dffdf44e31057b:core.Destroy.Core", scope: null, file: !4, line: 17, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) +// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !6) // CHECK:STDOUT: !37 = !DILocation(line: 17, column: 7, scope: !35) // CHECK:STDOUT: !38 = !{!36} -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !4, line: 17, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !6) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.271d79a4f33942b3:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) +// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !11) // CHECK:STDOUT: !41 = !DILocation(line: 17, column: 7, scope: !39) // CHECK:STDOUT: !42 = !{!40} -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.aef98596d3a9e1eb:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !11) // CHECK:STDOUT: !45 = !DILocation(line: 17, column: 7, scope: !43) // CHECK:STDOUT: !46 = !{!44} -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5432973a0cb6f903:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1423d794a4867d77:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) // CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !11) // CHECK:STDOUT: !49 = !DILocation(line: 17, column: 7, scope: !47) // CHECK:STDOUT: !50 = !{!48} -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.79101dbcae945290:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !54) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1366a4d5330239bd:core.Destroy.Core", scope: null, file: !4, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !54) // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !11) -// CHECK:STDOUT: !53 = !DILocation(line: 17, column: 7, scope: !51) +// CHECK:STDOUT: !53 = !DILocation(line: 16, column: 26, scope: !51) // CHECK:STDOUT: !54 = !{!52} -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fd19f3506b5fdce5:core.Destroy.Core", scope: null, file: !4, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) -// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !11) -// CHECK:STDOUT: !57 = !DILocation(line: 16, column: 26, scope: !55) -// CHECK:STDOUT: !58 = !{!56} -// CHECK:STDOUT: !59 = !DIFile(filename: "{{.*}}/prelude/iterate.carbon", directory: "") -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf", scope: null, file: !59, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !66) -// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !11) -// CHECK:STDOUT: !65 = !DILocation(line: 23, column: 38, scope: !60) -// CHECK:STDOUT: !66 = !{!61} -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf", scope: null, file: !59, line: 24, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !91) -// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !11) -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 2, scope: !67, type: !11) -// CHECK:STDOUT: !75 = !DILocation(line: 25, column: 9, scope: !67) -// CHECK:STDOUT: !76 = !DILocation(line: 25, column: 8, scope: !67) -// CHECK:STDOUT: !79 = !DILocation(line: 26, column: 7, scope: !67) -// CHECK:STDOUT: !80 = !DILocation(line: 27, column: 31, scope: !67) -// CHECK:STDOUT: !82 = !DILocation(line: 27, column: 36, scope: !67) -// CHECK:STDOUT: !83 = !DILocation(line: 27, column: 14, scope: !67) -// CHECK:STDOUT: !84 = !{!11, !6} +// CHECK:STDOUT: !55 = !DIFile(filename: "{{.*}}/prelude/iterate.carbon", directory: "") +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.e163a239f9fa927c:Iterate.Core.b21ad873d2e8cb91", scope: null, file: !55, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) +// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !11) +// CHECK:STDOUT: !61 = !DILocation(line: 23, column: 38, scope: !56) +// CHECK:STDOUT: !62 = !{!57} +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.e163a239f9fa927c:Iterate.Core.b21ad873d2e8cb91", scope: null, file: !55, line: 24, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !87) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !11) +// CHECK:STDOUT: !65 = !DILocalVariable(arg: 2, scope: !63, type: !11) +// CHECK:STDOUT: !71 = !DILocation(line: 25, column: 9, scope: !63) +// CHECK:STDOUT: !72 = !DILocation(line: 25, column: 8, scope: !63) +// CHECK:STDOUT: !75 = !DILocation(line: 26, column: 7, scope: !63) +// CHECK:STDOUT: !76 = !DILocation(line: 27, column: 31, scope: !63) +// CHECK:STDOUT: !78 = !DILocation(line: 27, column: 36, scope: !63) +// CHECK:STDOUT: !79 = !DILocation(line: 27, column: 14, scope: !63) +// CHECK:STDOUT: !80 = !{!11, !6} +// CHECK:STDOUT: !81 = !DISubroutineType(types: !80) +// CHECK:STDOUT: !82 = !DILocation(line: 27, column: 7, scope: !63) +// CHECK:STDOUT: !83 = !DILocation(line: 29, column: 14, scope: !63) +// CHECK:STDOUT: !84 = !{!11} // CHECK:STDOUT: !85 = !DISubroutineType(types: !84) -// CHECK:STDOUT: !86 = !DILocation(line: 27, column: 7, scope: !67) -// CHECK:STDOUT: !87 = !DILocation(line: 29, column: 14, scope: !67) -// CHECK:STDOUT: !88 = !{!11} -// CHECK:STDOUT: !89 = !DISubroutineType(types: !88) -// CHECK:STDOUT: !90 = !DILocation(line: 29, column: 7, scope: !67) -// CHECK:STDOUT: !91 = !{!68, !69} -// CHECK:STDOUT: !92 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a5214d4ceffb522b", scope: null, file: !92, line: 36, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !101) -// CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !93, type: !11) -// CHECK:STDOUT: !99 = !DILocation(line: 37, column: 12, scope: !93) -// CHECK:STDOUT: !100 = !DILocation(line: 37, column: 5, scope: !93) -// CHECK:STDOUT: !101 = !{!94} -// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a5214d4ceffb522b", scope: null, file: !92, line: 39, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !110) -// CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !11) -// CHECK:STDOUT: !108 = !DILocation(line: 40, column: 12, scope: !102) -// CHECK:STDOUT: !109 = !DILocation(line: 40, column: 5, scope: !102) -// CHECK:STDOUT: !110 = !{!103} -// CHECK:STDOUT: !111 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !111, line: 396, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !119) -// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !6) -// CHECK:STDOUT: !115 = !DILocation(line: 398, column: 5, scope: !112) -// CHECK:STDOUT: !116 = !{null, !6, !6} -// CHECK:STDOUT: !117 = !DISubroutineType(types: !116) -// CHECK:STDOUT: !118 = !DILocation(line: 396, column: 3, scope: !112) -// CHECK:STDOUT: !119 = !{!113} -// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a5214d4ceffb522b", scope: null, file: !92, line: 33, type: !85, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !127) -// CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !120, type: !6) -// CHECK:STDOUT: !125 = !DILocation(line: 34, column: 12, scope: !120) -// CHECK:STDOUT: !126 = !DILocation(line: 34, column: 5, scope: !120) -// CHECK:STDOUT: !127 = !{!121} -// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a5214d4ceffb522b", scope: null, file: !92, line: 30, type: !89, spFlags: DISPFlagDefinition, unit: !5) -// CHECK:STDOUT: !131 = !DILocation(line: 31, column: 12, scope: !128) -// CHECK:STDOUT: !132 = !DILocation(line: 31, column: 5, scope: !128) -// CHECK:STDOUT: !133 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !92, line: 141, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !140) -// CHECK:STDOUT: !134 = !DILocalVariable(arg: 1, scope: !133, type: !11) -// CHECK:STDOUT: !138 = !DILocation(line: 142, column: 12, scope: !133) -// CHECK:STDOUT: !139 = !DILocation(line: 142, column: 5, scope: !133) -// CHECK:STDOUT: !140 = !{!134} -// CHECK:STDOUT: !141 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !92, line: 144, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !148) -// CHECK:STDOUT: !142 = !DILocalVariable(arg: 1, scope: !141, type: !11) -// CHECK:STDOUT: !146 = !DILocation(line: 145, column: 12, scope: !141) -// CHECK:STDOUT: !147 = !DILocation(line: 145, column: 5, scope: !141) -// CHECK:STDOUT: !148 = !{!142} -// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !111, line: 331, type: !117, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !156) -// CHECK:STDOUT: !150 = !DILocalVariable(arg: 1, scope: !149, type: !6) -// CHECK:STDOUT: !151 = !DILocalVariable(arg: 2, scope: !149, type: !6) -// CHECK:STDOUT: !152 = !DILocation(line: 0, scope: !149) -// CHECK:STDOUT: !153 = !DILocation(line: 331, column: 3, scope: !149) -// CHECK:STDOUT: !154 = !{!6, !6} -// CHECK:STDOUT: !155 = !DISubroutineType(types: !154) -// CHECK:STDOUT: !156 = !{!150, !151} -// CHECK:STDOUT: !157 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !92, line: 131, type: !85, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !170) -// CHECK:STDOUT: !158 = !DILocalVariable(arg: 1, scope: !157, type: !6) -// CHECK:STDOUT: !166 = !DILocation(line: 137, column: 5, scope: !157) -// CHECK:STDOUT: !168 = !DILocation(line: 138, column: 5, scope: !157) -// CHECK:STDOUT: !169 = !DILocation(line: 139, column: 5, scope: !157) -// CHECK:STDOUT: !170 = !{!158} -// CHECK:STDOUT: !171 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !92, line: 125, type: !89, spFlags: DISPFlagDefinition, unit: !5) -// CHECK:STDOUT: !178 = !DILocation(line: 128, column: 5, scope: !171) -// CHECK:STDOUT: !179 = !DILocation(line: 129, column: 5, scope: !171) -// CHECK:STDOUT: !180 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !111, line: 64, type: !155, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !188) -// CHECK:STDOUT: !181 = !DILocalVariable(arg: 1, scope: !180, type: !6) -// CHECK:STDOUT: !185 = !DILocation(line: 66, column: 17, scope: !180) -// CHECK:STDOUT: !187 = !DILocation(line: 66, column: 5, scope: !180) -// CHECK:STDOUT: !188 = !{!181} -// CHECK:STDOUT: !189 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !111, line: 59, type: !155, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !196) -// CHECK:STDOUT: !190 = !DILocalVariable(arg: 1, scope: !189, type: !6) -// CHECK:STDOUT: !195 = !DILocation(line: 59, column: 28, scope: !189) -// CHECK:STDOUT: !196 = !{!190} +// CHECK:STDOUT: !86 = !DILocation(line: 29, column: 7, scope: !63) +// CHECK:STDOUT: !87 = !{!64, !65} +// CHECK:STDOUT: !88 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.63bc0bf740b17859", scope: null, file: !88, line: 36, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !97) +// CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !89, type: !11) +// CHECK:STDOUT: !95 = !DILocation(line: 37, column: 12, scope: !89) +// CHECK:STDOUT: !96 = !DILocation(line: 37, column: 5, scope: !89) +// CHECK:STDOUT: !97 = !{!90} +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.63bc0bf740b17859", scope: null, file: !88, line: 39, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !106) +// CHECK:STDOUT: !99 = !DILocalVariable(arg: 1, scope: !98, type: !11) +// CHECK:STDOUT: !104 = !DILocation(line: 40, column: 12, scope: !98) +// CHECK:STDOUT: !105 = !DILocation(line: 40, column: 5, scope: !98) +// CHECK:STDOUT: !106 = !{!99} +// CHECK:STDOUT: !107 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !107, line: 396, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !115) +// CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !108, type: !6) +// CHECK:STDOUT: !111 = !DILocation(line: 398, column: 5, scope: !108) +// CHECK:STDOUT: !112 = !{null, !6, !6} +// CHECK:STDOUT: !113 = !DISubroutineType(types: !112) +// CHECK:STDOUT: !114 = !DILocation(line: 396, column: 3, scope: !108) +// CHECK:STDOUT: !115 = !{!109} +// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.63bc0bf740b17859", scope: null, file: !88, line: 33, type: !81, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !123) +// CHECK:STDOUT: !117 = !DILocalVariable(arg: 1, scope: !116, type: !6) +// CHECK:STDOUT: !121 = !DILocation(line: 34, column: 12, scope: !116) +// CHECK:STDOUT: !122 = !DILocation(line: 34, column: 5, scope: !116) +// CHECK:STDOUT: !123 = !{!117} +// CHECK:STDOUT: !124 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.63bc0bf740b17859", scope: null, file: !88, line: 30, type: !85, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !127 = !DILocation(line: 31, column: 12, scope: !124) +// CHECK:STDOUT: !128 = !DILocation(line: 31, column: 5, scope: !124) +// CHECK:STDOUT: !129 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !88, line: 141, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !136) +// CHECK:STDOUT: !130 = !DILocalVariable(arg: 1, scope: !129, type: !11) +// CHECK:STDOUT: !134 = !DILocation(line: 142, column: 12, scope: !129) +// CHECK:STDOUT: !135 = !DILocation(line: 142, column: 5, scope: !129) +// CHECK:STDOUT: !136 = !{!130} +// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !88, line: 144, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !144) +// CHECK:STDOUT: !138 = !DILocalVariable(arg: 1, scope: !137, type: !11) +// CHECK:STDOUT: !142 = !DILocation(line: 145, column: 12, scope: !137) +// CHECK:STDOUT: !143 = !DILocation(line: 145, column: 5, scope: !137) +// CHECK:STDOUT: !144 = !{!138} +// CHECK:STDOUT: !145 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !107, line: 331, type: !113, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !152) +// CHECK:STDOUT: !146 = !DILocalVariable(arg: 1, scope: !145, type: !6) +// CHECK:STDOUT: !147 = !DILocalVariable(arg: 2, scope: !145, type: !6) +// CHECK:STDOUT: !148 = !DILocation(line: 0, scope: !145) +// CHECK:STDOUT: !149 = !DILocation(line: 331, column: 3, scope: !145) +// CHECK:STDOUT: !150 = !{!6, !6} +// CHECK:STDOUT: !151 = !DISubroutineType(types: !150) +// CHECK:STDOUT: !152 = !{!146, !147} +// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !88, line: 131, type: !81, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !166) +// CHECK:STDOUT: !154 = !DILocalVariable(arg: 1, scope: !153, type: !6) +// CHECK:STDOUT: !162 = !DILocation(line: 137, column: 5, scope: !153) +// CHECK:STDOUT: !164 = !DILocation(line: 138, column: 5, scope: !153) +// CHECK:STDOUT: !165 = !DILocation(line: 139, column: 5, scope: !153) +// CHECK:STDOUT: !166 = !{!154} +// CHECK:STDOUT: !167 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !88, line: 125, type: !85, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !174 = !DILocation(line: 128, column: 5, scope: !167) +// CHECK:STDOUT: !175 = !DILocation(line: 129, column: 5, scope: !167) +// CHECK:STDOUT: !176 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !107, line: 64, type: !151, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !184) +// CHECK:STDOUT: !177 = !DILocalVariable(arg: 1, scope: !176, type: !6) +// CHECK:STDOUT: !181 = !DILocation(line: 66, column: 17, scope: !176) +// CHECK:STDOUT: !183 = !DILocation(line: 66, column: 5, scope: !176) +// CHECK:STDOUT: !184 = !{!177} +// CHECK:STDOUT: !185 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !107, line: 59, type: !151, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !192) +// CHECK:STDOUT: !186 = !DILocalVariable(arg: 1, scope: !185, type: !6) +// CHECK:STDOUT: !191 = !DILocation(line: 59, column: 28, scope: !185) +// CHECK:STDOUT: !192 = !{!186} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/array/layout.carbon b/toolchain/lower/testdata/array/layout.carbon index f5c52c21dd56..160f3de4f894 100644 --- a/toolchain/lower/testdata/array/layout.carbon +++ b/toolchain/lower/testdata/array/layout.carbon @@ -50,24 +50,24 @@ var c: array(Core.Int(257), 5) = (1, 2, 3, 4, 5); // CHECK:STDOUT: %.loc12_13.array.index = getelementptr inbounds [3 x <{ <{ ptr, i32 }>, [4 x i8] }>], ptr %v.var, i32 0, i32 2, !dbg !37 // CHECK:STDOUT: %.loc12_14.b = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc12_13.array.index, i32 0, i32 1, !dbg !37 // CHECK:STDOUT: call void @_CCheck.Main(ptr %.loc12_14.b), !dbg !39 -// CHECK:STDOUT: call void @"_COp.fcdfc34c2770c9a2:core.Destroy.Core"(ptr %v.var), !dbg !29 +// CHECK:STDOUT: call void @"_COp.9e05708f03266b13:core.Destroy.Core"(ptr %v.var), !dbg !29 // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2aa353f1055a0cc5:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.0bcbe81284b6bcb5:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fcdfc34c2770c9a2:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.9e05708f03266b13:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } @@ -102,15 +102,15 @@ var c: array(Core.Int(257), 5) = (1, 2, 3, 4, 5); // CHECK:STDOUT: !37 = !DILocation(line: 12, column: 10, scope: !28) // CHECK:STDOUT: !39 = !DILocation(line: 12, column: 3, scope: !28) // CHECK:STDOUT: !40 = !DILocation(line: 5, column: 1, scope: !28) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !20) // CHECK:STDOUT: !43 = !DILocation(line: 9, column: 3, scope: !41) // CHECK:STDOUT: !44 = !{!42} -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2aa353f1055a0cc5:core.Destroy.Core", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0bcbe81284b6bcb5:core.Destroy.Core", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) // CHECK:STDOUT: !47 = !DILocation(line: 9, column: 3, scope: !45) // CHECK:STDOUT: !48 = !{!46} -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fcdfc34c2770c9a2:core.Destroy.Core", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !52) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9e05708f03266b13:core.Destroy.Core", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !52) // CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !21) // CHECK:STDOUT: !51 = !DILocation(line: 9, column: 3, scope: !49) // CHECK:STDOUT: !52 = !{!50} diff --git a/toolchain/lower/testdata/builtins/char.carbon b/toolchain/lower/testdata/builtins/char.carbon index f0388de7a454..c254264dd0f9 100644 --- a/toolchain/lower/testdata/builtins/char.carbon +++ b/toolchain/lower/testdata/builtins/char.carbon @@ -30,18 +30,18 @@ fn Example() -> char { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !14 // CHECK:STDOUT: store i8 97, ptr %c.var, align 1, !dbg !14 // CHECK:STDOUT: %.loc6 = load i8, ptr %c.var, align 1, !dbg !16 -// CHECK:STDOUT: call void @"_COp.da789d153bec1921:core.Destroy.Core"(ptr %c.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.8839c9ace2be9137:core.Destroy.Core"(ptr %c.var), !dbg !14 // CHECK:STDOUT: ret i8 %.loc6, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.be60742f00557eec:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.da789d153bec1921:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.8839c9ace2be9137:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } @@ -68,11 +68,11 @@ fn Example() -> char { // CHECK:STDOUT: !14 = !DILocation(line: 5, column: 3, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 6, column: 10, scope: !11) // CHECK:STDOUT: !17 = !DILocation(line: 6, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.becc1452ae1d9d7b:core.Destroy.Core", scope: null, file: !4, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.be60742f00557eec:core.Destroy.Core", scope: null, file: !4, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !18, type: !6) // CHECK:STDOUT: !20 = !DILocation(line: 5, column: 3, scope: !18) // CHECK:STDOUT: !21 = !{!19} -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.da789d153bec1921:core.Destroy.Core", scope: null, file: !4, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8839c9ace2be9137:core.Destroy.Core", scope: null, file: !4, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !6) // CHECK:STDOUT: !24 = !DILocation(line: 5, column: 3, scope: !22) // CHECK:STDOUT: !25 = !{!23} diff --git a/toolchain/lower/testdata/builtins/cpp.carbon b/toolchain/lower/testdata/builtins/cpp.carbon index b7b23445d81e..99551844067f 100644 --- a/toolchain/lower/testdata/builtins/cpp.carbon +++ b/toolchain/lower/testdata/builtins/cpp.carbon @@ -70,7 +70,7 @@ fn Test() { // CHECK:STDOUT: %MakePointerPointer.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %.loc25_53.1.temp, i32 0, i32 8, !dbg !16 // CHECK:STDOUT: store ptr getelementptr inbounds ([4 x i32], ptr @array.loc25_52.18, i32 1), ptr %MakePointerPointer.call.init_list.end, align 8, !dbg !16 // CHECK:STDOUT: call void @_CTakePointerPointer.Main(ptr %.loc25_53.1.temp), !dbg !18 -// CHECK:STDOUT: call void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr @array), !dbg !17 +// CHECK:STDOUT: call void @"_COp.88cc3346b7991af5:core.Destroy.Core"(ptr @array), !dbg !17 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_47.1.temp), !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_46.3.temp), !dbg !20 // CHECK:STDOUT: %.loc26_46.4.array.index = getelementptr inbounds [4 x i32], ptr %.loc26_46.3.temp, i32 0, i64 0, !dbg !20 @@ -82,18 +82,18 @@ fn Test() { // CHECK:STDOUT: %MakePointerSize.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %.loc26_47.1.temp, i32 0, i32 8, !dbg !19 // CHECK:STDOUT: store i64 4, ptr %MakePointerSize.call.init_list.size, align 8, !dbg !19 // CHECK:STDOUT: call void @_CTakePointerSize.Main(ptr %.loc26_47.1.temp), !dbg !21 -// CHECK:STDOUT: call void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr @array), !dbg !20 +// CHECK:STDOUT: call void @"_COp.88cc3346b7991af5:core.Destroy.Core"(ptr @array), !dbg !20 // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.88cc3346b7991af5:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -102,7 +102,7 @@ fn Test() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.eefa3f320d583a8d:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.88cc3346b7991af5:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 3, 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -132,11 +132,11 @@ fn Test() { // CHECK:STDOUT: !20 = !DILocation(line: 26, column: 35, scope: !15) // CHECK:STDOUT: !21 = !DILocation(line: 26, column: 3, scope: !15) // CHECK:STDOUT: !22 = !DILocation(line: 24, column: 1, scope: !15) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 25, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 25, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !6) // CHECK:STDOUT: !25 = !DILocation(line: 25, column: 41, scope: !23) // CHECK:STDOUT: !26 = !{!24} -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eefa3f320d583a8d:core.Destroy.Core", scope: null, file: !4, line: 25, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.88cc3346b7991af5:core.Destroy.Core", scope: null, file: !4, line: 25, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !8) // CHECK:STDOUT: !29 = !DILocation(line: 25, column: 41, scope: !27) // CHECK:STDOUT: !30 = !{!28} diff --git a/toolchain/lower/testdata/builtins/maybe_unformed.carbon b/toolchain/lower/testdata/builtins/maybe_unformed.carbon index eaa946f4b85f..f52e4d110e0e 100644 --- a/toolchain/lower/testdata/builtins/maybe_unformed.carbon +++ b/toolchain/lower/testdata/builtins/maybe_unformed.carbon @@ -90,12 +90,12 @@ fn PassAdapterBool() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc28_21.1.temp), !dbg !61 // CHECK:STDOUT: call void @_CMakeBool.Main(ptr %.loc28_21.1.temp), !dbg !61 // CHECK:STDOUT: call void @_CTakeBool.Main(ptr %.loc28_21.1.temp), !dbg !62 -// CHECK:STDOUT: call void @"_COp.c4089b4f1697e4a6:core.Destroy.Core"(ptr %.loc28_21.1.temp), !dbg !61 +// CHECK:STDOUT: call void @"_COp.2ec8e1132c6ccd4f:core.Destroy.Core"(ptr %.loc28_21.1.temp), !dbg !61 // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c4089b4f1697e4a6:core.Destroy.Core"(ptr %self) #0 !dbg !64 { +// CHECK:STDOUT: define weak_odr void @"_COp.2ec8e1132c6ccd4f:core.Destroy.Core"(ptr %self) #0 !dbg !64 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } @@ -124,24 +124,24 @@ fn PassAdapterBool() { // CHECK:STDOUT: store i32 %MakeAdapterI32.call, ptr %.loc48_33.1.temp, align 4, !dbg !82 // CHECK:STDOUT: %.loc48_33.3 = load i32, ptr %.loc48_33.1.temp, align 4, !dbg !82 // CHECK:STDOUT: call void @_CTakeAdapterI32.Main(i32 %.loc48_33.3), !dbg !83 -// CHECK:STDOUT: call void @"_COp.9d67511b0143461b:core.Destroy.Core"(ptr %.loc48_33.1.temp), !dbg !82 +// CHECK:STDOUT: call void @"_COp.4615e23332cd8b4c:core.Destroy.Core"(ptr %.loc48_33.1.temp), !dbg !82 // CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !85 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !85 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !89 { +// CHECK:STDOUT: define weak_odr void @"_COp.1d6a7672bf2f14c6:core.Destroy.Core"(ptr %self) #0 !dbg !89 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.9d67511b0143461b:core.Destroy.Core"(ptr %self) #0 !dbg !93 { +// CHECK:STDOUT: define weak_odr void @"_COp.4615e23332cd8b4c:core.Destroy.Core"(ptr %self) #0 !dbg !93 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !95 // CHECK:STDOUT: } @@ -161,12 +161,12 @@ fn PassAdapterBool() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc55_35.1.temp), !dbg !103 // CHECK:STDOUT: call void @_CMakeAdapterBool.Main(ptr %.loc55_35.1.temp), !dbg !103 // CHECK:STDOUT: call void @_CTakeAdapterBool.Main(ptr %.loc55_35.1.temp), !dbg !104 -// CHECK:STDOUT: call void @"_COp.7fe843c0b66498d6:core.Destroy.Core"(ptr %.loc55_35.1.temp), !dbg !103 +// CHECK:STDOUT: call void @"_COp.c9abcd82dd2173d7:core.Destroy.Core"(ptr %.loc55_35.1.temp), !dbg !103 // CHECK:STDOUT: ret void, !dbg !105 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7fe843c0b66498d6:core.Destroy.Core"(ptr %self) #0 !dbg !106 { +// CHECK:STDOUT: define weak_odr void @"_COp.c9abcd82dd2173d7:core.Destroy.Core"(ptr %self) #0 !dbg !106 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !108 // CHECK:STDOUT: } @@ -211,7 +211,7 @@ fn PassAdapterBool() { // CHECK:STDOUT: !61 = !DILocation(line: 28, column: 12, scope: !60) // CHECK:STDOUT: !62 = !DILocation(line: 28, column: 3, scope: !60) // CHECK:STDOUT: !63 = !DILocation(line: 26, column: 1, scope: !60) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c4089b4f1697e4a6:core.Destroy.Core", scope: null, file: !32, line: 28, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !67) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2ec8e1132c6ccd4f:core.Destroy.Core", scope: null, file: !32, line: 28, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !67) // CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !64, type: !37) // CHECK:STDOUT: !66 = !DILocation(line: 28, column: 12, scope: !64) // CHECK:STDOUT: !67 = !{!65} @@ -228,15 +228,15 @@ fn PassAdapterBool() { // CHECK:STDOUT: !82 = !DILocation(line: 48, column: 18, scope: !81) // CHECK:STDOUT: !83 = !DILocation(line: 48, column: 3, scope: !81) // CHECK:STDOUT: !84 = !DILocation(line: 45, column: 1, scope: !81) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 48, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !88) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !32, line: 48, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !88) // CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !34) // CHECK:STDOUT: !87 = !DILocation(line: 48, column: 18, scope: !85) // CHECK:STDOUT: !88 = !{!86} -// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !32, line: 48, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !92) +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1d6a7672bf2f14c6:core.Destroy.Core", scope: null, file: !32, line: 48, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !92) // CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !89, type: !37) // CHECK:STDOUT: !91 = !DILocation(line: 48, column: 18, scope: !89) // CHECK:STDOUT: !92 = !{!90} -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9d67511b0143461b:core.Destroy.Core", scope: null, file: !32, line: 48, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !96) +// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4615e23332cd8b4c:core.Destroy.Core", scope: null, file: !32, line: 48, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !96) // CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !93, type: !34) // CHECK:STDOUT: !95 = !DILocation(line: 48, column: 18, scope: !93) // CHECK:STDOUT: !96 = !{!94} @@ -248,7 +248,7 @@ fn PassAdapterBool() { // CHECK:STDOUT: !103 = !DILocation(line: 55, column: 19, scope: !102) // CHECK:STDOUT: !104 = !DILocation(line: 55, column: 3, scope: !102) // CHECK:STDOUT: !105 = !DILocation(line: 54, column: 1, scope: !102) -// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7fe843c0b66498d6:core.Destroy.Core", scope: null, file: !32, line: 55, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !109) +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c9abcd82dd2173d7:core.Destroy.Core", scope: null, file: !32, line: 55, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !109) // CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !37) // CHECK:STDOUT: !108 = !DILocation(line: 55, column: 19, scope: !106) // CHECK:STDOUT: !109 = !{!107} diff --git a/toolchain/lower/testdata/class/adapt.carbon b/toolchain/lower/testdata/class/adapt.carbon index a00e727c7f85..e31a27aa50ae 100644 --- a/toolchain/lower/testdata/class/adapt.carbon +++ b/toolchain/lower/testdata/class/adapt.carbon @@ -94,30 +94,30 @@ fn DoStuff(a: Int) -> Int { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %pa.var), !dbg !56 // CHECK:STDOUT: call void @_CMake.PairAdapter.Main(ptr %pa.var), !dbg !57 // CHECK:STDOUT: %PairAdapter.GetB.call = call i32 @_CGetB.PairAdapter.Main(ptr %pa.var), !dbg !59 -// CHECK:STDOUT: call void @"_COp.2c73101a15c7940c:core.Destroy.Core"(ptr %pa.var), !dbg !56 +// CHECK:STDOUT: call void @"_COp.865f2ef613cc5c67:core.Destroy.Core"(ptr %pa.var), !dbg !56 // CHECK:STDOUT: ret i32 %PairAdapter.GetB.call, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.b4c762864cd9a02b:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c5c320de480da9c1:core.Destroy.Core"(ptr %self) #0 !dbg !69 { +// CHECK:STDOUT: define weak_odr void @"_COp.a031f5a2c623d311:core.Destroy.Core"(ptr %self) #0 !dbg !69 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2c73101a15c7940c:core.Destroy.Core"(ptr %self) #0 !dbg !73 { +// CHECK:STDOUT: define weak_odr void @"_COp.865f2ef613cc5c67:core.Destroy.Core"(ptr %self) #0 !dbg !73 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } @@ -166,19 +166,19 @@ fn DoStuff(a: Int) -> Int { // CHECK:STDOUT: !57 = !DILocation(line: 27, column: 25, scope: !53) // CHECK:STDOUT: !59 = !DILocation(line: 28, column: 10, scope: !53) // CHECK:STDOUT: !60 = !DILocation(line: 28, column: 3, scope: !53) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 27, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !64) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 27, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !64) // CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !20) // CHECK:STDOUT: !63 = !DILocation(line: 27, column: 3, scope: !61) // CHECK:STDOUT: !64 = !{!62} -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !18, line: 27, type: !31, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !68) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b4c762864cd9a02b:core.Destroy.Core", scope: null, file: !18, line: 27, type: !31, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !68) // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !21) // CHECK:STDOUT: !67 = !DILocation(line: 27, column: 3, scope: !65) // CHECK:STDOUT: !68 = !{!66} -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c5c320de480da9c1:core.Destroy.Core", scope: null, file: !18, line: 27, type: !31, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !72) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a031f5a2c623d311:core.Destroy.Core", scope: null, file: !18, line: 27, type: !31, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !72) // CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !21) // CHECK:STDOUT: !71 = !DILocation(line: 27, column: 3, scope: !69) // CHECK:STDOUT: !72 = !{!70} -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2c73101a15c7940c:core.Destroy.Core", scope: null, file: !18, line: 27, type: !31, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !76) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.865f2ef613cc5c67:core.Destroy.Core", scope: null, file: !18, line: 27, type: !31, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !76) // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !21) // CHECK:STDOUT: !75 = !DILocation(line: 27, column: 3, scope: !73) // CHECK:STDOUT: !76 = !{!74} diff --git a/toolchain/lower/testdata/class/basic.carbon b/toolchain/lower/testdata/class/basic.carbon index 501a8c271df9..6f8feba05d35 100644 --- a/toolchain/lower/testdata/class/basic.carbon +++ b/toolchain/lower/testdata/class/basic.carbon @@ -36,25 +36,25 @@ fn Run() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !31 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !33 // CHECK:STDOUT: call void @_CF.Main(ptr %_.var, ptr %c.var), !dbg !35 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !33 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %_.var), !dbg !33 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !31 // CHECK:STDOUT: ret i32 0, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.17d64d1458c6b56d:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.09861f44a9b84abf:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !46 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !46 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } @@ -63,7 +63,7 @@ fn Run() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.cbd14a388b4a1c25:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.08d9e38b928ba575:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -89,15 +89,15 @@ fn Run() { // CHECK:STDOUT: !33 = !DILocation(line: 22, column: 3, scope: !30) // CHECK:STDOUT: !35 = !DILocation(line: 22, column: 14, scope: !30) // CHECK:STDOUT: !37 = !DILocation(line: 20, column: 1, scope: !30) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 22, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 22, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) // CHECK:STDOUT: !40 = !DILocation(line: 22, column: 3, scope: !38) // CHECK:STDOUT: !41 = !{!39} -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.17d64d1458c6b56d:core.Destroy.Core", scope: null, file: !18, line: 22, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.09861f44a9b84abf:core.Destroy.Core", scope: null, file: !18, line: 22, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !21) // CHECK:STDOUT: !44 = !DILocation(line: 22, column: 3, scope: !42) // CHECK:STDOUT: !45 = !{!43} -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !18, line: 22, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !49) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !18, line: 22, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !49) // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !21) // CHECK:STDOUT: !48 = !DILocation(line: 22, column: 3, scope: !46) // CHECK:STDOUT: !49 = !{!47} diff --git a/toolchain/lower/testdata/class/convert.carbon b/toolchain/lower/testdata/class/convert.carbon index fddb72a00907..a25071ac6023 100644 --- a/toolchain/lower/testdata/class/convert.carbon +++ b/toolchain/lower/testdata/class/convert.carbon @@ -54,24 +54,24 @@ fn DoIt() { // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %w.var, ptr align 4 @IntWrapper.val.loc24_3, i64 4, i1 false), !dbg !44 // CHECK:STDOUT: %IntWrapper.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core"(ptr %w.var), !dbg !47 // CHECK:STDOUT: call void @_CConsume.Main(i32 %IntWrapper.as.ImplicitAs.impl.Convert.call), !dbg !48 -// CHECK:STDOUT: call void @"_COp.44651c3f1152aab5:core.Destroy.Core"(ptr %w.var), !dbg !44 +// CHECK:STDOUT: call void @"_COp.aecc0ff76a42614a:core.Destroy.Core"(ptr %w.var), !dbg !44 // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !50 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !50 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b1b85bf5fbbbeec6:core.Destroy.Core"(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: define weak_odr void @"_COp.9edb2ca1f7e7a271:core.Destroy.Core"(ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.44651c3f1152aab5:core.Destroy.Core"(ptr %self) #0 !dbg !58 { +// CHECK:STDOUT: define weak_odr void @"_COp.aecc0ff76a42614a:core.Destroy.Core"(ptr %self) #0 !dbg !58 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } @@ -117,15 +117,15 @@ fn DoIt() { // CHECK:STDOUT: !47 = !DILocation(line: 25, column: 11, scope: !43) // CHECK:STDOUT: !48 = !DILocation(line: 25, column: 3, scope: !43) // CHECK:STDOUT: !49 = !DILocation(line: 23, column: 1, scope: !43) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 24, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !53) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 24, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !53) // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !20) // CHECK:STDOUT: !52 = !DILocation(line: 24, column: 3, scope: !50) // CHECK:STDOUT: !53 = !{!51} -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b1b85bf5fbbbeec6:core.Destroy.Core", scope: null, file: !18, line: 24, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !57) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9edb2ca1f7e7a271:core.Destroy.Core", scope: null, file: !18, line: 24, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !57) // CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !21) // CHECK:STDOUT: !56 = !DILocation(line: 24, column: 3, scope: !54) // CHECK:STDOUT: !57 = !{!55} -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.44651c3f1152aab5:core.Destroy.Core", scope: null, file: !18, line: 24, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !61) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.aecc0ff76a42614a:core.Destroy.Core", scope: null, file: !18, line: 24, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !61) // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !21) // CHECK:STDOUT: !60 = !DILocation(line: 24, column: 3, scope: !58) // CHECK:STDOUT: !61 = !{!59} diff --git a/toolchain/lower/testdata/class/field.carbon b/toolchain/lower/testdata/class/field.carbon index c5f80bc3a9e2..83491dfd1e02 100644 --- a/toolchain/lower/testdata/class/field.carbon +++ b/toolchain/lower/testdata/class/field.carbon @@ -92,24 +92,24 @@ fn Run() { // CHECK:STDOUT: %.loc16.b = getelementptr inbounds nuw { i32, ptr }, ptr %c.var, i32 0, i32 1, !dbg !46 // CHECK:STDOUT: store ptr %c.var, ptr %.loc16.b, align 8, !dbg !46 // CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr %c.var), !dbg !50 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !43 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !43 // CHECK:STDOUT: ret i32 %F.call, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !52 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.17d64d1458c6b56d:core.Destroy.Core"(ptr %self) #0 !dbg !56 { +// CHECK:STDOUT: define weak_odr void @"_COp.09861f44a9b84abf:core.Destroy.Core"(ptr %self) #0 !dbg !56 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !60 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !60 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !62 // CHECK:STDOUT: } @@ -149,15 +149,15 @@ fn Run() { // CHECK:STDOUT: !46 = !DILocation(line: 16, column: 3, scope: !40) // CHECK:STDOUT: !50 = !DILocation(line: 17, column: 10, scope: !40) // CHECK:STDOUT: !51 = !DILocation(line: 17, column: 3, scope: !40) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !55) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !55) // CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !20) // CHECK:STDOUT: !54 = !DILocation(line: 14, column: 3, scope: !52) // CHECK:STDOUT: !55 = !{!53} -// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.17d64d1458c6b56d:core.Destroy.Core", scope: null, file: !18, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !59) +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.09861f44a9b84abf:core.Destroy.Core", scope: null, file: !18, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !59) // CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !21) // CHECK:STDOUT: !58 = !DILocation(line: 14, column: 3, scope: !56) // CHECK:STDOUT: !59 = !{!57} -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !18, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !63) +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !18, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !63) // CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !21) // CHECK:STDOUT: !62 = !DILocation(line: 14, column: 3, scope: !60) // CHECK:STDOUT: !63 = !{!61} @@ -179,25 +179,25 @@ fn Run() { // CHECK:STDOUT: store ptr %o.var, ptr %.loc15_33.2.a, align 8, !dbg !72 // CHECK:STDOUT: %.loc15_33.4.b = getelementptr inbounds nuw { ptr, {} }, ptr %_.var, i32 0, i32 1, !dbg !72 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.loc15_33.4.b, ptr align 1 @Other.val.loc15_33.5, i64 0, i1 false), !dbg !72 -// CHECK:STDOUT: call void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %_.var), !dbg !69 -// CHECK:STDOUT: call void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %o.var), !dbg !67 +// CHECK:STDOUT: call void @"_COp.2fbae80a61a11ec7:core.Destroy.Core"(ptr %_.var), !dbg !69 +// CHECK:STDOUT: call void @"_COp.6a519b95f6f059eb:core.Destroy.Core"(ptr %o.var), !dbg !67 // CHECK:STDOUT: ret i32 0, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %self) #0 !dbg !75 { +// CHECK:STDOUT: define weak_odr void @"_COp.6a519b95f6f059eb:core.Destroy.Core"(ptr %self) #0 !dbg !75 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e3984e3bd9fbe02:core.Destroy.Core"(ptr %self) #0 !dbg !79 { +// CHECK:STDOUT: define weak_odr void @"_COp.fa5d2a8a45149476:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define weak_odr void @"_COp.2fbae80a61a11ec7:core.Destroy.Core"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } @@ -232,15 +232,15 @@ fn Run() { // CHECK:STDOUT: !69 = !DILocation(line: 15, column: 3, scope: !66) // CHECK:STDOUT: !72 = !DILocation(line: 15, column: 16, scope: !66) // CHECK:STDOUT: !74 = !DILocation(line: 11, column: 1, scope: !66) -// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d82121332abd7a34:core.Destroy.Core", scope: null, file: !64, line: 15, type: !29, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !78) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a519b95f6f059eb:core.Destroy.Core", scope: null, file: !64, line: 15, type: !29, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !78) // CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !21) // CHECK:STDOUT: !77 = !DILocation(line: 15, column: 3, scope: !75) // CHECK:STDOUT: !78 = !{!76} -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e3984e3bd9fbe02:core.Destroy.Core", scope: null, file: !64, line: 15, type: !29, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !82) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fa5d2a8a45149476:core.Destroy.Core", scope: null, file: !64, line: 15, type: !29, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !82) // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !21) // CHECK:STDOUT: !81 = !DILocation(line: 15, column: 3, scope: !79) // CHECK:STDOUT: !82 = !{!80} -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8f6cee575ea47869:core.Destroy.Core", scope: null, file: !64, line: 15, type: !29, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !86) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2fbae80a61a11ec7:core.Destroy.Core", scope: null, file: !64, line: 15, type: !29, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !86) // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !21) // CHECK:STDOUT: !85 = !DILocation(line: 15, column: 3, scope: !83) // CHECK:STDOUT: !86 = !{!84} @@ -263,37 +263,37 @@ fn Run() { // CHECK:STDOUT: %.loc17_40.4.b = getelementptr inbounds nuw <{ ptr, { i32 } }>, ptr %_.var, i32 0, i32 1, !dbg !95 // CHECK:STDOUT: %.loc17_39.3.v = getelementptr inbounds nuw { i32 }, ptr %.loc17_40.4.b, i32 0, i32 0, !dbg !96 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %.loc17_40.4.b, ptr align 4 @Other.val.loc17_40.5, i64 4, i1 false), !dbg !95 -// CHECK:STDOUT: call void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %_.var), !dbg !92 -// CHECK:STDOUT: call void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %o.var), !dbg !90 +// CHECK:STDOUT: call void @"_COp.2fbae80a61a11ec7:core.Destroy.Core"(ptr %_.var), !dbg !92 +// CHECK:STDOUT: call void @"_COp.6a519b95f6f059eb:core.Destroy.Core"(ptr %o.var), !dbg !90 // CHECK:STDOUT: ret i32 0, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !99 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !99 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !101 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3264ca7d25351da2:core.Destroy.Core"(ptr %self) #0 !dbg !103 { +// CHECK:STDOUT: define weak_odr void @"_COp.92afc3a45a31c789:core.Destroy.Core"(ptr %self) #0 !dbg !103 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !105 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %self) #0 !dbg !107 { +// CHECK:STDOUT: define weak_odr void @"_COp.6a519b95f6f059eb:core.Destroy.Core"(ptr %self) #0 !dbg !107 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e3984e3bd9fbe02:core.Destroy.Core"(ptr %self) #0 !dbg !111 { +// CHECK:STDOUT: define weak_odr void @"_COp.fa5d2a8a45149476:core.Destroy.Core"(ptr %self) #0 !dbg !111 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %self) #0 !dbg !115 { +// CHECK:STDOUT: define weak_odr void @"_COp.2fbae80a61a11ec7:core.Destroy.Core"(ptr %self) #0 !dbg !115 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !117 // CHECK:STDOUT: } @@ -331,23 +331,23 @@ fn Run() { // CHECK:STDOUT: !95 = !DILocation(line: 17, column: 16, scope: !89) // CHECK:STDOUT: !96 = !DILocation(line: 17, column: 31, scope: !89) // CHECK:STDOUT: !98 = !DILocation(line: 13, column: 1, scope: !89) -// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !87, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !102) +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !87, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !102) // CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !99, type: !20) // CHECK:STDOUT: !101 = !DILocation(line: 17, column: 3, scope: !99) // CHECK:STDOUT: !102 = !{!100} -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3264ca7d25351da2:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !106) +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "Op", linkageName: "_COp.92afc3a45a31c789:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !106) // CHECK:STDOUT: !104 = !DILocalVariable(arg: 1, scope: !103, type: !21) // CHECK:STDOUT: !105 = !DILocation(line: 17, column: 3, scope: !103) // CHECK:STDOUT: !106 = !{!104} -// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d82121332abd7a34:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !110) +// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a519b95f6f059eb:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !110) // CHECK:STDOUT: !108 = !DILocalVariable(arg: 1, scope: !107, type: !21) // CHECK:STDOUT: !109 = !DILocation(line: 17, column: 3, scope: !107) // CHECK:STDOUT: !110 = !{!108} -// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e3984e3bd9fbe02:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !114) +// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fa5d2a8a45149476:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !114) // CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !111, type: !21) // CHECK:STDOUT: !113 = !DILocation(line: 17, column: 3, scope: !111) // CHECK:STDOUT: !114 = !{!112} -// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8f6cee575ea47869:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !118) +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2fbae80a61a11ec7:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !118) // CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !21) // CHECK:STDOUT: !117 = !DILocation(line: 17, column: 3, scope: !115) // CHECK:STDOUT: !118 = !{!116} diff --git a/toolchain/lower/testdata/class/generic.carbon b/toolchain/lower/testdata/class/generic.carbon index 9a0887848f67..c353583b2df1 100644 --- a/toolchain/lower/testdata/class/generic.carbon +++ b/toolchain/lower/testdata/class/generic.carbon @@ -303,24 +303,24 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: %.loc16_37.5.w = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 1, !dbg !135 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.29b.loc16_3, i64 8, i1 false), !dbg !134 // CHECK:STDOUT: %C.GetBool.call = call i1 @_CGetBool.C.Main.4d6ceefeb7f772f4(ptr %c.var), !dbg !137 -// CHECK:STDOUT: call void @"_COp.a0d0786a20116357:core.Destroy.Core"(ptr %c.var), !dbg !134 +// CHECK:STDOUT: call void @"_COp.d012f76a41f764ee:core.Destroy.Core"(ptr %c.var), !dbg !134 // CHECK:STDOUT: ret i1 %C.GetBool.call, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !139 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !139 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !141 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e72c587127f1eaf2:core.Destroy.Core"(ptr %self) #0 !dbg !143 { +// CHECK:STDOUT: define weak_odr void @"_COp.861652b2c489f7cc:core.Destroy.Core"(ptr %self) #0 !dbg !143 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !145 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a0d0786a20116357:core.Destroy.Core"(ptr %self) #0 !dbg !147 { +// CHECK:STDOUT: define weak_odr void @"_COp.d012f76a41f764ee:core.Destroy.Core"(ptr %self) #0 !dbg !147 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !149 // CHECK:STDOUT: } @@ -334,7 +334,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: %.loc21_37.5.w = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 1, !dbg !155 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.29b.loc16_3, i64 8, i1 false), !dbg !154 // CHECK:STDOUT: %C.GetT.call = call i32 @_CGetT.C.Main.4d6ceefeb7f772f4(ptr %c.var), !dbg !157 -// CHECK:STDOUT: call void @"_COp.a0d0786a20116357:core.Destroy.Core"(ptr %c.var), !dbg !154 +// CHECK:STDOUT: call void @"_COp.d012f76a41f764ee:core.Destroy.Core"(ptr %c.var), !dbg !154 // CHECK:STDOUT: ret i32 %C.GetT.call, !dbg !160 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -347,18 +347,18 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: %.loc26_37.4.w = getelementptr inbounds nuw { i1, {} }, ptr %c.var, i32 0, i32 1, !dbg !165 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.0ea.loc26_3, i64 1, i1 false), !dbg !164 // CHECK:STDOUT: call void @_CGetT.C.Main.22bf4b2f6c4322a2(ptr %c.var), !dbg !167 -// CHECK:STDOUT: call void @"_COp.b215ecea30cf644d:core.Destroy.Core"(ptr %c.var), !dbg !164 +// CHECK:STDOUT: call void @"_COp.0477b985a5aa27cc:core.Destroy.Core"(ptr %c.var), !dbg !164 // CHECK:STDOUT: ret void, !dbg !168 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e76d4e9768eb659e:core.Destroy.Core"(ptr %self) #0 !dbg !169 { +// CHECK:STDOUT: define weak_odr void @"_COp.82468d70c8d12e86:core.Destroy.Core"(ptr %self) #0 !dbg !169 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !171 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b215ecea30cf644d:core.Destroy.Core"(ptr %self) #0 !dbg !173 { +// CHECK:STDOUT: define weak_odr void @"_COp.0477b985a5aa27cc:core.Destroy.Core"(ptr %self) #0 !dbg !173 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !175 // CHECK:STDOUT: } @@ -375,24 +375,24 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 2, !dbg !182 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.727.loc31_3, i64 16, i1 false), !dbg !180 // CHECK:STDOUT: call void @_CGetT.C.Main.03220e6718a91584(ptr %return, ptr %c.var), !dbg !184 -// CHECK:STDOUT: call void @"_COp.d1fe91796c0f0ec3:core.Destroy.Core"(ptr %c.var), !dbg !180 +// CHECK:STDOUT: call void @"_COp.3cffcf67f1271f67:core.Destroy.Core"(ptr %c.var), !dbg !180 // CHECK:STDOUT: ret void, !dbg !185 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !186 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !186 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !188 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f23404d5ba6ed9a1:core.Destroy.Core"(ptr %self) #0 !dbg !190 { +// CHECK:STDOUT: define weak_odr void @"_COp.1ada7ed46fb16378:core.Destroy.Core"(ptr %self) #0 !dbg !190 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !192 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d1fe91796c0f0ec3:core.Destroy.Core"(ptr %self) #0 !dbg !194 { +// CHECK:STDOUT: define weak_odr void @"_COp.3cffcf67f1271f67:core.Destroy.Core"(ptr %self) #0 !dbg !194 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !196 // CHECK:STDOUT: } @@ -486,15 +486,15 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !135 = !DILocation(line: 16, column: 19, scope: !131) // CHECK:STDOUT: !137 = !DILocation(line: 17, column: 10, scope: !131) // CHECK:STDOUT: !138 = !DILocation(line: 17, column: 3, scope: !131) -// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !121, line: 16, type: !124, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !142) +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !121, line: 16, type: !124, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !142) // CHECK:STDOUT: !140 = !DILocalVariable(arg: 1, scope: !139, type: !36) // CHECK:STDOUT: !141 = !DILocation(line: 16, column: 3, scope: !139) // CHECK:STDOUT: !142 = !{!140} -// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e72c587127f1eaf2:core.Destroy.Core", scope: null, file: !121, line: 16, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !146) +// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "Op", linkageName: "_COp.861652b2c489f7cc:core.Destroy.Core", scope: null, file: !121, line: 16, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !146) // CHECK:STDOUT: !144 = !DILocalVariable(arg: 1, scope: !143, type: !37) // CHECK:STDOUT: !145 = !DILocation(line: 16, column: 3, scope: !143) // CHECK:STDOUT: !146 = !{!144} -// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a0d0786a20116357:core.Destroy.Core", scope: null, file: !121, line: 16, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !150) +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d012f76a41f764ee:core.Destroy.Core", scope: null, file: !121, line: 16, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !150) // CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !147, type: !37) // CHECK:STDOUT: !149 = !DILocation(line: 16, column: 3, scope: !147) // CHECK:STDOUT: !150 = !{!148} @@ -510,11 +510,11 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !165 = !DILocation(line: 26, column: 18, scope: !161) // CHECK:STDOUT: !167 = !DILocation(line: 27, column: 10, scope: !161) // CHECK:STDOUT: !168 = !DILocation(line: 27, column: 3, scope: !161) -// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e76d4e9768eb659e:core.Destroy.Core", scope: null, file: !121, line: 26, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !172) +// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "Op", linkageName: "_COp.82468d70c8d12e86:core.Destroy.Core", scope: null, file: !121, line: 26, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !172) // CHECK:STDOUT: !170 = !DILocalVariable(arg: 1, scope: !169, type: !37) // CHECK:STDOUT: !171 = !DILocation(line: 26, column: 3, scope: !169) // CHECK:STDOUT: !172 = !{!170} -// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b215ecea30cf644d:core.Destroy.Core", scope: null, file: !121, line: 26, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !176) +// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0477b985a5aa27cc:core.Destroy.Core", scope: null, file: !121, line: 26, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !176) // CHECK:STDOUT: !174 = !DILocalVariable(arg: 1, scope: !173, type: !37) // CHECK:STDOUT: !175 = !DILocation(line: 26, column: 3, scope: !173) // CHECK:STDOUT: !176 = !{!174} @@ -524,15 +524,15 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !182 = !DILocation(line: 31, column: 48, scope: !177) // CHECK:STDOUT: !184 = !DILocation(line: 32, column: 10, scope: !177) // CHECK:STDOUT: !185 = !DILocation(line: 32, column: 3, scope: !177) -// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !121, line: 31, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !189) +// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !121, line: 31, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !189) // CHECK:STDOUT: !187 = !DILocalVariable(arg: 1, scope: !186, type: !37) // CHECK:STDOUT: !188 = !DILocation(line: 31, column: 3, scope: !186) // CHECK:STDOUT: !189 = !{!187} -// CHECK:STDOUT: !190 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f23404d5ba6ed9a1:core.Destroy.Core", scope: null, file: !121, line: 31, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !193) +// CHECK:STDOUT: !190 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1ada7ed46fb16378:core.Destroy.Core", scope: null, file: !121, line: 31, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !193) // CHECK:STDOUT: !191 = !DILocalVariable(arg: 1, scope: !190, type: !37) // CHECK:STDOUT: !192 = !DILocation(line: 31, column: 3, scope: !190) // CHECK:STDOUT: !193 = !{!191} -// CHECK:STDOUT: !194 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d1fe91796c0f0ec3:core.Destroy.Core", scope: null, file: !121, line: 31, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !197) +// CHECK:STDOUT: !194 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3cffcf67f1271f67:core.Destroy.Core", scope: null, file: !121, line: 31, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !197) // CHECK:STDOUT: !195 = !DILocalVariable(arg: 1, scope: !194, type: !37) // CHECK:STDOUT: !196 = !DILocation(line: 31, column: 3, scope: !194) // CHECK:STDOUT: !197 = !{!195} diff --git a/toolchain/lower/testdata/class/static.carbon b/toolchain/lower/testdata/class/static.carbon index 4d707b12b431..d8d7fb8f2fdf 100644 --- a/toolchain/lower/testdata/class/static.carbon +++ b/toolchain/lower/testdata/class/static.carbon @@ -104,12 +104,12 @@ fn Run() -> i32 { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.C.Main"(ptr %self) #1 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self), !dbg !45 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self), !dbg !45 // CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #2 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #2 !dbg !47 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } @@ -156,7 +156,7 @@ fn Run() -> i32 { // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !38) // CHECK:STDOUT: !45 = !DILocation(line: 4, column: 1, scope: !43) // CHECK:STDOUT: !46 = !{!44} -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !36, line: 4, type: !40, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !50) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !36, line: 4, type: !40, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !50) // CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !38) // CHECK:STDOUT: !49 = !DILocation(line: 4, column: 1, scope: !47) // CHECK:STDOUT: !50 = !{!48} diff --git a/toolchain/lower/testdata/class/virtual.carbon b/toolchain/lower/testdata/class/virtual.carbon index ce7dc6b3f95e..3b411773cb0e 100644 --- a/toolchain/lower/testdata/class/virtual.carbon +++ b/toolchain/lower/testdata/class/virtual.carbon @@ -296,10 +296,10 @@ fn Use() { // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc9, ptr align 8 @Derived.val.loc9_49.5, i64 8, i1 false), !dbg !49 // CHECK:STDOUT: store ptr @"_CDerived.Classes.$vtable", ptr %.loc9_49.7.vptr, align 8, !dbg !49 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc12), !dbg !52 -// CHECK:STDOUT: call void @"_COp.90ba497113bea86f:core.Destroy.Core"(ptr %_.var.loc12), !dbg !52 -// CHECK:STDOUT: call void @"_COp.90ba497113bea86f:core.Destroy.Core"(ptr %_.var.loc9), !dbg !48 -// CHECK:STDOUT: call void @"_COp.21751b0492a59c62:core.Destroy.Core"(ptr %_.var.loc8), !dbg !45 -// CHECK:STDOUT: call void @"_COp.bbc7087405c1f238:core.Destroy.Core"(ptr %_.var.loc7), !dbg !43 +// CHECK:STDOUT: call void @"_COp.43ed5d0e08fc7556:core.Destroy.Core"(ptr %_.var.loc12), !dbg !52 +// CHECK:STDOUT: call void @"_COp.43ed5d0e08fc7556:core.Destroy.Core"(ptr %_.var.loc9), !dbg !48 +// CHECK:STDOUT: call void @"_COp.4487e305711510e9:core.Destroy.Core"(ptr %_.var.loc8), !dbg !45 +// CHECK:STDOUT: call void @"_COp.bf085e1f873e33df:core.Destroy.Core"(ptr %_.var.loc7), !dbg !43 // CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -308,31 +308,31 @@ fn Use() { // CHECK:STDOUT: declare void @"_CFn:thunk:Intermediate.Classes:Derived.Classes"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bbc7087405c1f238:core.Destroy.Core"(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: define weak_odr void @"_COp.bf085e1f873e33df:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f2ac7e7561e4076c:core.Destroy.Core"(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: define weak_odr void @"_COp.f7b08e0f33b30342:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.21751b0492a59c62:core.Destroy.Core"(ptr %self) #0 !dbg !63 { +// CHECK:STDOUT: define weak_odr void @"_COp.4487e305711510e9:core.Destroy.Core"(ptr %self) #0 !dbg !63 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.558f48c06e972c2d:core.Destroy.Core"(ptr %self) #0 !dbg !67 { +// CHECK:STDOUT: define weak_odr void @"_COp.3c3534e993db7939:core.Destroy.Core"(ptr %self) #0 !dbg !67 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.90ba497113bea86f:core.Destroy.Core"(ptr %self) #0 !dbg !71 { +// CHECK:STDOUT: define weak_odr void @"_COp.43ed5d0e08fc7556:core.Destroy.Core"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } @@ -356,7 +356,7 @@ fn Use() { // CHECK:STDOUT: declare ptr @llvm.load.relative.i32(ptr, i32) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.90ba497113bea86f:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.43ed5d0e08fc7556:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 2, 1, 0 } // CHECK:STDOUT: @@ -385,23 +385,23 @@ fn Use() { // CHECK:STDOUT: !50 = !DILocation(line: 9, column: 37, scope: !42) // CHECK:STDOUT: !52 = !DILocation(line: 12, column: 3, scope: !42) // CHECK:STDOUT: !54 = !DILocation(line: 6, column: 1, scope: !42) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbc7087405c1f238:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !58) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bf085e1f873e33df:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !58) // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !20) // CHECK:STDOUT: !57 = !DILocation(line: 12, column: 3, scope: !55) // CHECK:STDOUT: !58 = !{!56} -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f2ac7e7561e4076c:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !62) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f7b08e0f33b30342:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !62) // CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !20) // CHECK:STDOUT: !61 = !DILocation(line: 12, column: 3, scope: !59) // CHECK:STDOUT: !62 = !{!60} -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.21751b0492a59c62:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !66) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4487e305711510e9:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !66) // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !20) // CHECK:STDOUT: !65 = !DILocation(line: 12, column: 3, scope: !63) // CHECK:STDOUT: !66 = !{!64} -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Op", linkageName: "_COp.558f48c06e972c2d:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !70) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3c3534e993db7939:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !70) // CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !20) // CHECK:STDOUT: !69 = !DILocation(line: 12, column: 3, scope: !67) // CHECK:STDOUT: !70 = !{!68} -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.90ba497113bea86f:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !74) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.43ed5d0e08fc7556:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !74) // CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !20) // CHECK:STDOUT: !73 = !DILocation(line: 12, column: 3, scope: !71) // CHECK:STDOUT: !74 = !{!72} @@ -548,26 +548,26 @@ fn Use() { // CHECK:STDOUT: %.loc13_24.2.vptr = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %_.var, i32 0, i32 0, !dbg !136 // CHECK:STDOUT: %.loc13_24.5.m = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %_.var, i32 0, i32 1, !dbg !136 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var, ptr align 8 @Base.val.loc13_3, i64 12, i1 false), !dbg !135 -// CHECK:STDOUT: call void @"_COp.a6a094e0f6bc9348:core.Destroy.Core"(ptr %_.var), !dbg !135 -// CHECK:STDOUT: call void @"_COp.a6a094e0f6bc9348:core.Destroy.Core"(ptr %v.var), !dbg !130 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %i.var), !dbg !128 +// CHECK:STDOUT: call void @"_COp.c6dbe0017b4c8d16:core.Destroy.Core"(ptr %_.var), !dbg !135 +// CHECK:STDOUT: call void @"_COp.c6dbe0017b4c8d16:core.Destroy.Core"(ptr %v.var), !dbg !130 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %i.var), !dbg !128 // CHECK:STDOUT: ret void, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !139 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !139 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !141 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bef9da9070867db2:core.Destroy.Core"(ptr %self) #0 !dbg !143 { +// CHECK:STDOUT: define weak_odr void @"_COp.fd9d4a98e93fc879:core.Destroy.Core"(ptr %self) #0 !dbg !143 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !145 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a6a094e0f6bc9348:core.Destroy.Core"(ptr %self) #0 !dbg !147 { +// CHECK:STDOUT: define weak_odr void @"_COp.c6dbe0017b4c8d16:core.Destroy.Core"(ptr %self) #0 !dbg !147 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !149 // CHECK:STDOUT: } @@ -579,7 +579,7 @@ fn Use() { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.a6a094e0f6bc9348:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.c6dbe0017b4c8d16:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -613,15 +613,15 @@ fn Use() { // CHECK:STDOUT: !135 = !DILocation(line: 13, column: 3, scope: !127) // CHECK:STDOUT: !136 = !DILocation(line: 13, column: 17, scope: !127) // CHECK:STDOUT: !138 = !DILocation(line: 9, column: 1, scope: !127) -// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !117, line: 13, type: !121, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !142) +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !117, line: 13, type: !121, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !142) // CHECK:STDOUT: !140 = !DILocalVariable(arg: 1, scope: !139, type: !119) // CHECK:STDOUT: !141 = !DILocation(line: 13, column: 3, scope: !139) // CHECK:STDOUT: !142 = !{!140} -// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bef9da9070867db2:core.Destroy.Core", scope: null, file: !117, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !146) +// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fd9d4a98e93fc879:core.Destroy.Core", scope: null, file: !117, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !146) // CHECK:STDOUT: !144 = !DILocalVariable(arg: 1, scope: !143, type: !20) // CHECK:STDOUT: !145 = !DILocation(line: 13, column: 3, scope: !143) // CHECK:STDOUT: !146 = !{!144} -// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a6a094e0f6bc9348:core.Destroy.Core", scope: null, file: !117, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !150) +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c6dbe0017b4c8d16:core.Destroy.Core", scope: null, file: !117, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !150) // CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !147, type: !20) // CHECK:STDOUT: !149 = !DILocation(line: 13, column: 3, scope: !147) // CHECK:STDOUT: !150 = !{!148} @@ -647,30 +647,30 @@ fn Use() { // CHECK:STDOUT: %.loc13_32.7.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc13_32.6.base, i32 0, i32 0, !dbg !155 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var, ptr align 8 @Derived.val.loc13_32.5, i64 8, i1 false), !dbg !155 // CHECK:STDOUT: store ptr @"_CDerived.Main.$vtable", ptr %.loc13_32.7.vptr, align 8, !dbg !155 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %_.var), !dbg !154 +// CHECK:STDOUT: call void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %_.var), !dbg !154 // CHECK:STDOUT: ret void, !dbg !158 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !159 { +// CHECK:STDOUT: define weak_odr void @"_COp.95528a86e1127e2d:core.Destroy.Core"(ptr %self) #0 !dbg !159 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !161 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #0 !dbg !163 { +// CHECK:STDOUT: define weak_odr void @"_COp.294df737cd074d60:core.Destroy.Core"(ptr %self) #0 !dbg !163 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !165 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.66f0cc6b13851099:core.Destroy.Core"(ptr %self) #0 !dbg !167 { +// CHECK:STDOUT: define weak_odr void @"_COp.caed8a96bf328d09:core.Destroy.Core"(ptr %self) #0 !dbg !167 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #0 !dbg !171 { +// CHECK:STDOUT: define weak_odr void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %self) #0 !dbg !171 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !173 // CHECK:STDOUT: } @@ -701,19 +701,19 @@ fn Use() { // CHECK:STDOUT: !155 = !DILocation(line: 13, column: 21, scope: !153) // CHECK:STDOUT: !156 = !DILocation(line: 13, column: 30, scope: !153) // CHECK:STDOUT: !158 = !DILocation(line: 12, column: 1, scope: !153) -// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !162) +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95528a86e1127e2d:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !162) // CHECK:STDOUT: !160 = !DILocalVariable(arg: 1, scope: !159, type: !20) // CHECK:STDOUT: !161 = !DILocation(line: 13, column: 3, scope: !159) // CHECK:STDOUT: !162 = !{!160} -// CHECK:STDOUT: !163 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !166) +// CHECK:STDOUT: !163 = distinct !DISubprogram(name: "Op", linkageName: "_COp.294df737cd074d60:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !166) // CHECK:STDOUT: !164 = !DILocalVariable(arg: 1, scope: !163, type: !20) // CHECK:STDOUT: !165 = !DILocation(line: 13, column: 3, scope: !163) // CHECK:STDOUT: !166 = !{!164} -// CHECK:STDOUT: !167 = distinct !DISubprogram(name: "Op", linkageName: "_COp.66f0cc6b13851099:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !170) +// CHECK:STDOUT: !167 = distinct !DISubprogram(name: "Op", linkageName: "_COp.caed8a96bf328d09:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !170) // CHECK:STDOUT: !168 = !DILocalVariable(arg: 1, scope: !167, type: !20) // CHECK:STDOUT: !169 = !DILocation(line: 13, column: 3, scope: !167) // CHECK:STDOUT: !170 = !{!168} -// CHECK:STDOUT: !171 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !174) +// CHECK:STDOUT: !171 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b25525d21a9bd472:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !174) // CHECK:STDOUT: !172 = !DILocalVariable(arg: 1, scope: !171, type: !20) // CHECK:STDOUT: !173 = !DILocation(line: 13, column: 3, scope: !171) // CHECK:STDOUT: !174 = !{!172} @@ -791,30 +791,30 @@ fn Use() { // CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %.loc15_3.2.vptr, align 8, !dbg !195 // CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !195 // CHECK:STDOUT: call void %Base.F.call(ptr %.loc15_3.2.vptr), !dbg !195 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %v.var), !dbg !191 +// CHECK:STDOUT: call void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %v.var), !dbg !191 // CHECK:STDOUT: ret void, !dbg !196 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #1 !dbg !197 { +// CHECK:STDOUT: define weak_odr void @"_COp.95528a86e1127e2d:core.Destroy.Core"(ptr %self) #1 !dbg !197 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !199 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #1 !dbg !201 { +// CHECK:STDOUT: define weak_odr void @"_COp.294df737cd074d60:core.Destroy.Core"(ptr %self) #1 !dbg !201 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !203 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.66f0cc6b13851099:core.Destroy.Core"(ptr %self) #1 !dbg !205 { +// CHECK:STDOUT: define weak_odr void @"_COp.caed8a96bf328d09:core.Destroy.Core"(ptr %self) #1 !dbg !205 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !207 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #1 !dbg !209 { +// CHECK:STDOUT: define weak_odr void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %self) #1 !dbg !209 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !211 // CHECK:STDOUT: } @@ -855,19 +855,19 @@ fn Use() { // CHECK:STDOUT: !193 = !DILocation(line: 14, column: 30, scope: !190) // CHECK:STDOUT: !195 = !DILocation(line: 15, column: 3, scope: !190) // CHECK:STDOUT: !196 = !DILocation(line: 13, column: 1, scope: !190) -// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !200) +// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95528a86e1127e2d:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !200) // CHECK:STDOUT: !198 = !DILocalVariable(arg: 1, scope: !197, type: !20) // CHECK:STDOUT: !199 = !DILocation(line: 14, column: 3, scope: !197) // CHECK:STDOUT: !200 = !{!198} -// CHECK:STDOUT: !201 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !204) +// CHECK:STDOUT: !201 = distinct !DISubprogram(name: "Op", linkageName: "_COp.294df737cd074d60:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !204) // CHECK:STDOUT: !202 = !DILocalVariable(arg: 1, scope: !201, type: !20) // CHECK:STDOUT: !203 = !DILocation(line: 14, column: 3, scope: !201) // CHECK:STDOUT: !204 = !{!202} -// CHECK:STDOUT: !205 = distinct !DISubprogram(name: "Op", linkageName: "_COp.66f0cc6b13851099:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !208) +// CHECK:STDOUT: !205 = distinct !DISubprogram(name: "Op", linkageName: "_COp.caed8a96bf328d09:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !208) // CHECK:STDOUT: !206 = !DILocalVariable(arg: 1, scope: !205, type: !20) // CHECK:STDOUT: !207 = !DILocation(line: 14, column: 3, scope: !205) // CHECK:STDOUT: !208 = !{!206} -// CHECK:STDOUT: !209 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !212) +// CHECK:STDOUT: !209 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b25525d21a9bd472:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !212) // CHECK:STDOUT: !210 = !DILocalVariable(arg: 1, scope: !209, type: !20) // CHECK:STDOUT: !211 = !DILocation(line: 14, column: 3, scope: !209) // CHECK:STDOUT: !212 = !{!210} @@ -888,10 +888,10 @@ fn Use() { // CHECK:STDOUT: ; ModuleID = 'generic_use.carbon' // CHECK:STDOUT: source_filename = "generic_use.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @"_CBase.Main.$vtable.9203bf580ba2de56" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.9203bf580ba2de56 to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.9203bf580ba2de56" to i64)) to i32)] -// CHECK:STDOUT: @"_CBase.Main.$vtable.d35bf058397cdfd9" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.d35bf058397cdfd9 to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.d35bf058397cdfd9" to i64)) to i32)] -// CHECK:STDOUT: @Base.val.389.loc16_3 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.9203bf580ba2de56" } -// CHECK:STDOUT: @Base.val.7e9.loc17_3 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.d35bf058397cdfd9" } +// CHECK:STDOUT: @"_CBase.Main.$vtable.73dc16096a14ffe3" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.73dc16096a14ffe3 to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.73dc16096a14ffe3" to i64)) to i32)] +// CHECK:STDOUT: @"_CBase.Main.$vtable.8c5d6b80f4488d91" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.8c5d6b80f4488d91 to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.8c5d6b80f4488d91" to i64)) to i32)] +// CHECK:STDOUT: @Base.val.16c.loc16_3 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.73dc16096a14ffe3" } +// CHECK:STDOUT: @Base.val.d0c.loc17_3 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.8c5d6b80f4488d91" } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main() #0 !dbg !217 { @@ -900,66 +900,66 @@ fn Use() { // CHECK:STDOUT: %_.var.loc17 = alloca { ptr }, align 8, !dbg !221 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !218 // CHECK:STDOUT: %.loc16_22.2.vptr = getelementptr inbounds nuw { ptr }, ptr %_.var.loc16, i32 0, i32 0, !dbg !219 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc16, ptr align 8 @Base.val.389.loc16_3, i64 8, i1 false), !dbg !218 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc16, ptr align 8 @Base.val.16c.loc16_3, i64 8, i1 false), !dbg !218 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !221 // CHECK:STDOUT: %.loc17_22.2.vptr = getelementptr inbounds nuw { ptr }, ptr %_.var.loc17, i32 0, i32 0, !dbg !222 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc17, ptr align 8 @Base.val.7e9.loc17_3, i64 8, i1 false), !dbg !221 -// CHECK:STDOUT: call void @"_COp.6a1d86cdd5547971:core.Destroy.Core"(ptr %_.var.loc17), !dbg !221 -// CHECK:STDOUT: call void @"_COp.40b7c6c0efee38e9:core.Destroy.Core"(ptr %_.var.loc16), !dbg !218 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc17, ptr align 8 @Base.val.d0c.loc17_3, i64 8, i1 false), !dbg !221 +// CHECK:STDOUT: call void @"_COp.29f553c9039a992c:core.Destroy.Core"(ptr %_.var.loc17), !dbg !221 +// CHECK:STDOUT: call void @"_COp.7c9ece1036397869:core.Destroy.Core"(ptr %_.var.loc16), !dbg !218 // CHECK:STDOUT: ret void, !dbg !224 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2a8a57e92efa0931:core.Destroy.Core"(ptr %self) #0 !dbg !225 { +// CHECK:STDOUT: define weak_odr void @"_COp.13f86630f401913f:core.Destroy.Core"(ptr %self) #0 !dbg !225 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !227 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1afb52e20d18d857:core.Destroy.Core"(ptr %self) #0 !dbg !229 { +// CHECK:STDOUT: define weak_odr void @"_COp.f2f12ab22a0a6b87:core.Destroy.Core"(ptr %self) #0 !dbg !229 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !231 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bbfe224db279cb80:core.Destroy.Core"(ptr %self) #0 !dbg !233 { +// CHECK:STDOUT: define weak_odr void @"_COp.8578661a61c8bbbf:core.Destroy.Core"(ptr %self) #0 !dbg !233 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !235 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !237 { +// CHECK:STDOUT: define weak_odr void @"_COp.95528a86e1127e2d:core.Destroy.Core"(ptr %self) #0 !dbg !237 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !239 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a1d86cdd5547971:core.Destroy.Core"(ptr %self) #0 !dbg !241 { +// CHECK:STDOUT: define weak_odr void @"_COp.29f553c9039a992c:core.Destroy.Core"(ptr %self) #0 !dbg !241 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !243 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.40b7c6c0efee38e9:core.Destroy.Core"(ptr %self) #0 !dbg !245 { +// CHECK:STDOUT: define weak_odr void @"_COp.7c9ece1036397869:core.Destroy.Core"(ptr %self) #0 !dbg !245 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !247 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.9203bf580ba2de56(ptr %self) #0 !dbg !249 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.73dc16096a14ffe3(ptr %self) #0 !dbg !249 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !252 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !252 -// CHECK:STDOUT: call void @"_COp.2a8a57e92efa0931:core.Destroy.Core"(ptr %_.var), !dbg !252 +// CHECK:STDOUT: call void @"_COp.13f86630f401913f:core.Destroy.Core"(ptr %_.var), !dbg !252 // CHECK:STDOUT: ret void, !dbg !254 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.d35bf058397cdfd9(ptr %self) #0 !dbg !256 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.8c5d6b80f4488d91(ptr %self) #0 !dbg !256 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { {} }, align 1, !dbg !259 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !259 -// CHECK:STDOUT: call void @"_COp.bbfe224db279cb80:core.Destroy.Core"(ptr %_.var), !dbg !259 +// CHECK:STDOUT: call void @"_COp.8578661a61c8bbbf:core.Destroy.Core"(ptr %_.var), !dbg !259 // CHECK:STDOUT: ret void, !dbg !261 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -994,36 +994,36 @@ fn Use() { // CHECK:STDOUT: !221 = !DILocation(line: 17, column: 3, scope: !217) // CHECK:STDOUT: !222 = !DILocation(line: 17, column: 21, scope: !217) // CHECK:STDOUT: !224 = !DILocation(line: 15, column: 1, scope: !217) -// CHECK:STDOUT: !225 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2a8a57e92efa0931:core.Destroy.Core", scope: null, file: !215, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !228) +// CHECK:STDOUT: !225 = distinct !DISubprogram(name: "Op", linkageName: "_COp.13f86630f401913f:core.Destroy.Core", scope: null, file: !215, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !228) // CHECK:STDOUT: !226 = !DILocalVariable(arg: 1, scope: !225, type: !20) // CHECK:STDOUT: !227 = !DILocation(line: 16, column: 10, scope: !225) // CHECK:STDOUT: !228 = !{!226} -// CHECK:STDOUT: !229 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1afb52e20d18d857:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !232) +// CHECK:STDOUT: !229 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f2f12ab22a0a6b87:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !232) // CHECK:STDOUT: !230 = !DILocalVariable(arg: 1, scope: !229, type: !20) // CHECK:STDOUT: !231 = !DILocation(line: 17, column: 10, scope: !229) // CHECK:STDOUT: !232 = !{!230} -// CHECK:STDOUT: !233 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbfe224db279cb80:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !236) +// CHECK:STDOUT: !233 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8578661a61c8bbbf:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !236) // CHECK:STDOUT: !234 = !DILocalVariable(arg: 1, scope: !233, type: !20) // CHECK:STDOUT: !235 = !DILocation(line: 17, column: 10, scope: !233) // CHECK:STDOUT: !236 = !{!234} -// CHECK:STDOUT: !237 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !240) +// CHECK:STDOUT: !237 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95528a86e1127e2d:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !240) // CHECK:STDOUT: !238 = !DILocalVariable(arg: 1, scope: !237, type: !20) // CHECK:STDOUT: !239 = !DILocation(line: 17, column: 3, scope: !237) // CHECK:STDOUT: !240 = !{!238} -// CHECK:STDOUT: !241 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a1d86cdd5547971:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !244) +// CHECK:STDOUT: !241 = distinct !DISubprogram(name: "Op", linkageName: "_COp.29f553c9039a992c:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !244) // CHECK:STDOUT: !242 = !DILocalVariable(arg: 1, scope: !241, type: !20) // CHECK:STDOUT: !243 = !DILocation(line: 17, column: 3, scope: !241) // CHECK:STDOUT: !244 = !{!242} -// CHECK:STDOUT: !245 = distinct !DISubprogram(name: "Op", linkageName: "_COp.40b7c6c0efee38e9:core.Destroy.Core", scope: null, file: !215, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !248) +// CHECK:STDOUT: !245 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7c9ece1036397869:core.Destroy.Core", scope: null, file: !215, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !248) // CHECK:STDOUT: !246 = !DILocalVariable(arg: 1, scope: !245, type: !20) // CHECK:STDOUT: !247 = !DILocation(line: 16, column: 3, scope: !245) // CHECK:STDOUT: !248 = !{!246} -// CHECK:STDOUT: !249 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.9203bf580ba2de56", scope: null, file: !215, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !255) +// CHECK:STDOUT: !249 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.73dc16096a14ffe3", scope: null, file: !215, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !255) // CHECK:STDOUT: !250 = !DILocalVariable(arg: 1, scope: !249, type: !20) // CHECK:STDOUT: !252 = !DILocation(line: 6, column: 5, scope: !249) // CHECK:STDOUT: !254 = !DILocation(line: 5, column: 3, scope: !249) // CHECK:STDOUT: !255 = !{!250} -// CHECK:STDOUT: !256 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.d35bf058397cdfd9", scope: null, file: !215, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !262) +// CHECK:STDOUT: !256 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.8c5d6b80f4488d91", scope: null, file: !215, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !262) // CHECK:STDOUT: !257 = !DILocalVariable(arg: 1, scope: !256, type: !20) // CHECK:STDOUT: !259 = !DILocation(line: 6, column: 5, scope: !256) // CHECK:STDOUT: !261 = !DILocation(line: 5, column: 3, scope: !256) @@ -1040,30 +1040,30 @@ fn Use() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { { ptr } }, align 8, !dbg !266 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !266 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %_.var), !dbg !266 +// CHECK:STDOUT: call void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %_.var), !dbg !266 // CHECK:STDOUT: ret void, !dbg !268 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !269 { +// CHECK:STDOUT: define weak_odr void @"_COp.95528a86e1127e2d:core.Destroy.Core"(ptr %self) #0 !dbg !269 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !271 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.898d07056c7ee329:core.Destroy.Core"(ptr %self) #0 !dbg !273 { +// CHECK:STDOUT: define weak_odr void @"_COp.5b23b4f14feb87e1:core.Destroy.Core"(ptr %self) #0 !dbg !273 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !275 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.869a2dea742ac75c:core.Destroy.Core"(ptr %self) #0 !dbg !277 { +// CHECK:STDOUT: define weak_odr void @"_COp.2f190654c863951f:core.Destroy.Core"(ptr %self) #0 !dbg !277 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !279 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #0 !dbg !281 { +// CHECK:STDOUT: define weak_odr void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %self) #0 !dbg !281 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !283 // CHECK:STDOUT: } @@ -1095,19 +1095,19 @@ fn Use() { // CHECK:STDOUT: !265 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !263, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !264) // CHECK:STDOUT: !266 = !DILocation(line: 15, column: 3, scope: !265) // CHECK:STDOUT: !268 = !DILocation(line: 14, column: 1, scope: !265) -// CHECK:STDOUT: !269 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !272) +// CHECK:STDOUT: !269 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95528a86e1127e2d:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !272) // CHECK:STDOUT: !270 = !DILocalVariable(arg: 1, scope: !269, type: !20) // CHECK:STDOUT: !271 = !DILocation(line: 15, column: 3, scope: !269) // CHECK:STDOUT: !272 = !{!270} -// CHECK:STDOUT: !273 = distinct !DISubprogram(name: "Op", linkageName: "_COp.898d07056c7ee329:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !276) +// CHECK:STDOUT: !273 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5b23b4f14feb87e1:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !276) // CHECK:STDOUT: !274 = !DILocalVariable(arg: 1, scope: !273, type: !20) // CHECK:STDOUT: !275 = !DILocation(line: 15, column: 3, scope: !273) // CHECK:STDOUT: !276 = !{!274} -// CHECK:STDOUT: !277 = distinct !DISubprogram(name: "Op", linkageName: "_COp.869a2dea742ac75c:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !280) +// CHECK:STDOUT: !277 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2f190654c863951f:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !280) // CHECK:STDOUT: !278 = !DILocalVariable(arg: 1, scope: !277, type: !20) // CHECK:STDOUT: !279 = !DILocation(line: 15, column: 3, scope: !277) // CHECK:STDOUT: !280 = !{!278} -// CHECK:STDOUT: !281 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !284) +// CHECK:STDOUT: !281 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b25525d21a9bd472:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !284) // CHECK:STDOUT: !282 = !DILocalVariable(arg: 1, scope: !281, type: !20) // CHECK:STDOUT: !283 = !DILocation(line: 15, column: 3, scope: !281) // CHECK:STDOUT: !284 = !{!282} @@ -1147,19 +1147,19 @@ fn Use() { // CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.a3bb440f6426a7d6.Core"(ptr %.5.temp, ptr %n), !dbg !308 // CHECK:STDOUT: call void @_CF.Derived.Main(ptr %.loc17_52.2.temp, ptr %self, ptr %.5.temp), !dbg !309 // CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.a3bb440f6426a7d6.Core"(ptr %return, ptr %.loc17_52.2.temp), !dbg !309 -// CHECK:STDOUT: call void @"_COp.5f7e8652ea6df95d:core.Destroy.Core"(ptr %.loc17_52.2.temp), !dbg !309 -// CHECK:STDOUT: call void @"_COp.ce04c064f6006102:core.Destroy.Core"(ptr %.5.temp), !dbg !308 +// CHECK:STDOUT: call void @"_COp.c2a743abd057cb33:core.Destroy.Core"(ptr %.loc17_52.2.temp), !dbg !309 +// CHECK:STDOUT: call void @"_COp.7ef2e8c2f12d163a:core.Destroy.Core"(ptr %.5.temp), !dbg !308 // CHECK:STDOUT: ret void, !dbg !309 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5f7e8652ea6df95d:core.Destroy.Core"(ptr %self) #0 !dbg !311 { +// CHECK:STDOUT: define weak_odr void @"_COp.c2a743abd057cb33:core.Destroy.Core"(ptr %self) #0 !dbg !311 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !313 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ce04c064f6006102:core.Destroy.Core"(ptr %self) #0 !dbg !315 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ef2e8c2f12d163a:core.Destroy.Core"(ptr %self) #0 !dbg !315 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !317 // CHECK:STDOUT: } @@ -1183,32 +1183,32 @@ fn Use() { // CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %.loc25_10.1.temp, align 8, !dbg !328 // CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !328 // CHECK:STDOUT: call void %Base.F.call(ptr %.loc25_10.1.temp, ptr %.loc24_18.2.base, ptr @From.val.loc18_14), !dbg !328 -// CHECK:STDOUT: call void @"_COp.ce04c064f6006102:core.Destroy.Core"(ptr %.loc25_10.1.temp), !dbg !328 -// CHECK:STDOUT: call void @"_COp.5f7e8652ea6df95d:core.Destroy.Core"(ptr @From.val), !dbg !329 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %d.var), !dbg !320 +// CHECK:STDOUT: call void @"_COp.7ef2e8c2f12d163a:core.Destroy.Core"(ptr %.loc25_10.1.temp), !dbg !328 +// CHECK:STDOUT: call void @"_COp.c2a743abd057cb33:core.Destroy.Core"(ptr @From.val), !dbg !329 +// CHECK:STDOUT: call void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %d.var), !dbg !320 // CHECK:STDOUT: ret void, !dbg !330 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !331 { +// CHECK:STDOUT: define weak_odr void @"_COp.95528a86e1127e2d:core.Destroy.Core"(ptr %self) #0 !dbg !331 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !333 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #0 !dbg !335 { +// CHECK:STDOUT: define weak_odr void @"_COp.294df737cd074d60:core.Destroy.Core"(ptr %self) #0 !dbg !335 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !337 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.66f0cc6b13851099:core.Destroy.Core"(ptr %self) #0 !dbg !339 { +// CHECK:STDOUT: define weak_odr void @"_COp.caed8a96bf328d09:core.Destroy.Core"(ptr %self) #0 !dbg !339 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !341 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #0 !dbg !343 { +// CHECK:STDOUT: define weak_odr void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %self) #0 !dbg !343 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !345 // CHECK:STDOUT: } @@ -1256,11 +1256,11 @@ fn Use() { // CHECK:STDOUT: !308 = !DILocation(line: 0, scope: !305) // CHECK:STDOUT: !309 = !DILocation(line: 17, column: 3, scope: !305) // CHECK:STDOUT: !310 = !{!306, !307} -// CHECK:STDOUT: !311 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5f7e8652ea6df95d:core.Destroy.Core", scope: null, file: !290, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !314) +// CHECK:STDOUT: !311 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c2a743abd057cb33:core.Destroy.Core", scope: null, file: !290, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !314) // CHECK:STDOUT: !312 = !DILocalVariable(arg: 1, scope: !311, type: !20) // CHECK:STDOUT: !313 = !DILocation(line: 17, column: 3, scope: !311) // CHECK:STDOUT: !314 = !{!312} -// CHECK:STDOUT: !315 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ce04c064f6006102:core.Destroy.Core", scope: null, file: !290, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !318) +// CHECK:STDOUT: !315 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ef2e8c2f12d163a:core.Destroy.Core", scope: null, file: !290, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !318) // CHECK:STDOUT: !316 = !DILocalVariable(arg: 1, scope: !315, type: !20) // CHECK:STDOUT: !317 = !DILocation(line: 0, scope: !315) // CHECK:STDOUT: !318 = !{!316} @@ -1272,19 +1272,19 @@ fn Use() { // CHECK:STDOUT: !328 = !DILocation(line: 25, column: 3, scope: !319) // CHECK:STDOUT: !329 = !DILocation(line: 25, column: 8, scope: !319) // CHECK:STDOUT: !330 = !DILocation(line: 22, column: 1, scope: !319) -// CHECK:STDOUT: !331 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !334) +// CHECK:STDOUT: !331 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95528a86e1127e2d:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !334) // CHECK:STDOUT: !332 = !DILocalVariable(arg: 1, scope: !331, type: !20) // CHECK:STDOUT: !333 = !DILocation(line: 23, column: 3, scope: !331) // CHECK:STDOUT: !334 = !{!332} -// CHECK:STDOUT: !335 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !338) +// CHECK:STDOUT: !335 = distinct !DISubprogram(name: "Op", linkageName: "_COp.294df737cd074d60:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !338) // CHECK:STDOUT: !336 = !DILocalVariable(arg: 1, scope: !335, type: !20) // CHECK:STDOUT: !337 = !DILocation(line: 23, column: 3, scope: !335) // CHECK:STDOUT: !338 = !{!336} -// CHECK:STDOUT: !339 = distinct !DISubprogram(name: "Op", linkageName: "_COp.66f0cc6b13851099:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !342) +// CHECK:STDOUT: !339 = distinct !DISubprogram(name: "Op", linkageName: "_COp.caed8a96bf328d09:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !342) // CHECK:STDOUT: !340 = !DILocalVariable(arg: 1, scope: !339, type: !20) // CHECK:STDOUT: !341 = !DILocation(line: 23, column: 3, scope: !339) // CHECK:STDOUT: !342 = !{!340} -// CHECK:STDOUT: !343 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !346) +// CHECK:STDOUT: !343 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b25525d21a9bd472:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !346) // CHECK:STDOUT: !344 = !DILocalVariable(arg: 1, scope: !343, type: !20) // CHECK:STDOUT: !345 = !DILocation(line: 23, column: 3, scope: !343) // CHECK:STDOUT: !346 = !{!344} diff --git a/toolchain/lower/testdata/for/bindings.carbon b/toolchain/lower/testdata/for/bindings.carbon index 4ba357981b23..6e35cdd900a3 100644 --- a/toolchain/lower/testdata/for/bindings.carbon +++ b/toolchain/lower/testdata/for/bindings.carbon @@ -50,83 +50,81 @@ fn For() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %r.var), !dbg !17 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %r.var, ptr align 1 @EmptyRange.val.loc27_3, i64 0, i1 false), !dbg !17 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !19 -// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr %r.var), !dbg !22 +// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.77b9b98c21cda092"(ptr %r.var), !dbg !22 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !22 // CHECK:STDOUT: br label %for.next, !dbg !22 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.1.temp), !dbg !22 -// CHECK:STDOUT: call void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !22 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.f24ed4cfd4dc70ce(ptr %.loc29_33.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.77b9b98c21cda092"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !22 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.6dc9cf042919088c(ptr %.loc29_33.1.temp), !dbg !22 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !22 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.8.temp), !dbg !22 -// CHECK:STDOUT: call void @_CGet.Optional.Core.f24ed4cfd4dc70ce(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !22 +// CHECK:STDOUT: call void @_CGet.Optional.Core.6dc9cf042919088c(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !22 // CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 0, !dbg !22 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 1, !dbg !22 // CHECK:STDOUT: %.loc29_33.11 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !22 // CHECK:STDOUT: %.loc29_33.12 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !22 // CHECK:STDOUT: store i32 %.loc29_33.12, ptr %n.var, align 4, !dbg !19 // CHECK:STDOUT: call void @_CF.Main(i32 %.loc29_33.11, ptr %n.var), !dbg !32 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc29_33.8.temp), !dbg !22 -// CHECK:STDOUT: call void @"_COp.d151bf443fefa495:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !22 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !19 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %.loc29_33.8.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.e6ede56fadd95c85:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !19 // CHECK:STDOUT: br label %for.next, !dbg !33 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next -// CHECK:STDOUT: call void @"_COp.d151bf443fefa495:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !22 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !19 -// CHECK:STDOUT: call void @"_COp.2f1484e6f9f8724d:core.Destroy.Core"(ptr %r.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.e6ede56fadd95c85:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !19 +// CHECK:STDOUT: call void @"_COp.5c0f85cf677fdc52:core.Destroy.Core"(ptr %r.var), !dbg !17 // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.6f4dee545ed23f91:core.Destroy.Core"(ptr) -// CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.927f3a4d5771ff29:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.6b9c90d9dd82cebb:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2b5bebaac7360e57:core.Destroy.Core"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.29c785c8e8489e66:core.Destroy.Core"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5af6617ed1d8eba3:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define weak_odr void @"_COp.db896a6e77a760db:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.29436536cefc14d3:core.Destroy.Core"(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: define weak_odr void @"_COp.a968564cf435c13f:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d151bf443fefa495:core.Destroy.Core"(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: define weak_odr void @"_COp.e6ede56fadd95c85:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2f1484e6f9f8724d:core.Destroy.Core"(ptr %self) #0 !dbg !63 { +// CHECK:STDOUT: define weak_odr void @"_COp.5c0f85cf677fdc52:core.Destroy.Core"(ptr %self) #0 !dbg !63 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } @@ -138,38 +136,38 @@ fn For() { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr %self) #0 !dbg !67 { +// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.77b9b98c21cda092"(ptr %self) #0 !dbg !67 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr sret(<{ { i32, i32 }, i1 }>) %return, ptr %self, ptr %_) #0 !dbg !74 { +// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.77b9b98c21cda092"(ptr sret(<{ { i32, i32 }, i1 }>) %return, ptr %self, ptr %_) #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CNone.Optional.Core.f24ed4cfd4dc70ce(ptr %return), !dbg !81 +// CHECK:STDOUT: call void @_CNone.Optional.Core.6dc9cf042919088c(ptr %return), !dbg !81 // CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.f24ed4cfd4dc70ce(ptr %self) #0 !dbg !87 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %self), !dbg !93 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.6dc9cf042919088c(ptr %self) #0 !dbg !87 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.77b9b98c21cda092"(ptr %self), !dbg !93 // CHECK:STDOUT: ret i1 %1, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.f24ed4cfd4dc70ce(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !96 { -// CHECK:STDOUT: call void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %return, ptr %self), !dbg !102 +// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.6dc9cf042919088c(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !96 { +// CHECK:STDOUT: call void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.77b9b98c21cda092"(ptr %return, ptr %self), !dbg !102 // CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.f24ed4cfd4dc70ce(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !105 { -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %return), !dbg !108 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.6dc9cf042919088c(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !105 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.77b9b98c21cda092"(ptr %return), !dbg !108 // CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %value) #0 !dbg !110 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.77b9b98c21cda092"(ptr %value) #0 !dbg !110 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 1, !dbg !115 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !115 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !115 @@ -177,14 +175,14 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr sret({ i32, i32 }) %return, ptr %value) #0 !dbg !118 { +// CHECK:STDOUT: define linkonce_odr void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.77b9b98c21cda092"(ptr sret({ i32, i32 }) %return, ptr %value) #0 !dbg !118 { // CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 0, !dbg !123 // CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr %return, ptr %value1), !dbg !123 // CHECK:STDOUT: ret void, !dbg !124 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !126 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.77b9b98c21cda092"(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !126 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %return, i32 0, i32 1, !dbg !133 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !133 // CHECK:STDOUT: ret void, !dbg !134 @@ -204,8 +202,8 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.70db2d92ffddbef7:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.d151bf443fefa495:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f58524831c37807e:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.e6ede56fadd95c85:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 4, 3, 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -237,43 +235,43 @@ fn For() { // CHECK:STDOUT: !32 = !DILocation(line: 30, column: 5, scope: !16) // CHECK:STDOUT: !33 = !DILocation(line: 29, column: 3, scope: !16) // CHECK:STDOUT: !34 = !DILocation(line: 26, column: 1, scope: !16) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 27, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 27, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !6) // CHECK:STDOUT: !37 = !DILocation(line: 27, column: 10, scope: !35) // CHECK:STDOUT: !38 = !{!36} -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !4, line: 27, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:core.Destroy.Core", scope: null, file: !4, line: 27, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !7) // CHECK:STDOUT: !41 = !DILocation(line: 27, column: 10, scope: !39) // CHECK:STDOUT: !42 = !{!40} -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.927f3a4d5771ff29:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6b9c90d9dd82cebb:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !7) // CHECK:STDOUT: !45 = !DILocation(line: 29, column: 7, scope: !43) // CHECK:STDOUT: !46 = !{!44} -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2b5bebaac7360e57:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.29c785c8e8489e66:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) // CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !7) // CHECK:STDOUT: !49 = !DILocation(line: 29, column: 7, scope: !47) // CHECK:STDOUT: !50 = !{!48} -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5af6617ed1d8eba3:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !54) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.db896a6e77a760db:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !54) // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !7) // CHECK:STDOUT: !53 = !DILocation(line: 29, column: 7, scope: !51) // CHECK:STDOUT: !54 = !{!52} -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.29436536cefc14d3:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a968564cf435c13f:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !7) // CHECK:STDOUT: !57 = !DILocation(line: 29, column: 7, scope: !55) // CHECK:STDOUT: !58 = !{!56} -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d151bf443fefa495:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e6ede56fadd95c85:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) // CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !7) // CHECK:STDOUT: !61 = !DILocation(line: 29, column: 7, scope: !59) // CHECK:STDOUT: !62 = !{!60} -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2f1484e6f9f8724d:core.Destroy.Core", scope: null, file: !4, line: 27, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !66) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5c0f85cf677fdc52:core.Destroy.Core", scope: null, file: !4, line: 27, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !66) // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !7) // CHECK:STDOUT: !65 = !DILocation(line: 27, column: 3, scope: !63) // CHECK:STDOUT: !66 = !{!64} -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f", scope: null, file: !4, line: 15, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !73) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.77b9b98c21cda092", scope: null, file: !4, line: 15, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !73) // CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !7) // CHECK:STDOUT: !72 = !DILocation(line: 16, column: 7, scope: !67) // CHECK:STDOUT: !73 = !{!68} -// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f", scope: null, file: !4, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !85) +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.77b9b98c21cda092", scope: null, file: !4, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !85) // CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !7) // CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !74, type: !7) // CHECK:STDOUT: !81 = !DILocation(line: 19, column: 14, scope: !74) @@ -282,30 +280,30 @@ fn For() { // CHECK:STDOUT: !84 = !DILocation(line: 19, column: 7, scope: !74) // CHECK:STDOUT: !85 = !{!75, !76} // CHECK:STDOUT: !86 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.f24ed4cfd4dc70ce", scope: null, file: !86, line: 36, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !95) +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.6dc9cf042919088c", scope: null, file: !86, line: 36, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !95) // CHECK:STDOUT: !88 = !DILocalVariable(arg: 1, scope: !87, type: !7) // CHECK:STDOUT: !93 = !DILocation(line: 37, column: 12, scope: !87) // CHECK:STDOUT: !94 = !DILocation(line: 37, column: 5, scope: !87) // CHECK:STDOUT: !95 = !{!88} -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.f24ed4cfd4dc70ce", scope: null, file: !86, line: 39, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !104) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.6dc9cf042919088c", scope: null, file: !86, line: 39, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !104) // CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !7) // CHECK:STDOUT: !102 = !DILocation(line: 40, column: 12, scope: !96) // CHECK:STDOUT: !103 = !DILocation(line: 40, column: 5, scope: !96) // CHECK:STDOUT: !104 = !{!97} -// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.f24ed4cfd4dc70ce", scope: null, file: !86, line: 30, type: !83, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.6dc9cf042919088c", scope: null, file: !86, line: 30, type: !83, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !108 = !DILocation(line: 31, column: 12, scope: !105) // CHECK:STDOUT: !109 = !DILocation(line: 31, column: 5, scope: !105) -// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f", scope: null, file: !86, line: 141, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !117) +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.77b9b98c21cda092", scope: null, file: !86, line: 141, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !117) // CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !110, type: !7) // CHECK:STDOUT: !115 = !DILocation(line: 142, column: 12, scope: !110) // CHECK:STDOUT: !116 = !DILocation(line: 142, column: 5, scope: !110) // CHECK:STDOUT: !117 = !{!111} -// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f", scope: null, file: !86, line: 144, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !125) +// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.77b9b98c21cda092", scope: null, file: !86, line: 144, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !125) // CHECK:STDOUT: !119 = !DILocalVariable(arg: 1, scope: !118, type: !7) // CHECK:STDOUT: !123 = !DILocation(line: 145, column: 12, scope: !118) // CHECK:STDOUT: !124 = !DILocation(line: 145, column: 5, scope: !118) // CHECK:STDOUT: !125 = !{!119} -// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f", scope: null, file: !86, line: 125, type: !83, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.77b9b98c21cda092", scope: null, file: !86, line: 125, type: !83, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !133 = !DILocation(line: 128, column: 5, scope: !126) // CHECK:STDOUT: !134 = !DILocation(line: 129, column: 5, scope: !126) // CHECK:STDOUT: !135 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") diff --git a/toolchain/lower/testdata/for/break_continue.carbon b/toolchain/lower/testdata/for/break_continue.carbon index 0608075ffee8..e1c934e40649 100644 --- a/toolchain/lower/testdata/for/break_continue.carbon +++ b/toolchain/lower/testdata/for/break_continue.carbon @@ -48,11 +48,11 @@ fn For() { // CHECK:STDOUT: for.next: ; preds = %if.else.loc20, %if.then.loc20, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_33.1.temp), !dbg !21 // CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc18_33.1.temp, ptr %.loc18_32.1.temp, ptr %var), !dbg !21 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.63bc0bf740b17859(ptr %.loc18_33.1.temp), !dbg !21 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !21 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.63bc0bf740b17859(ptr %.loc18_33.1.temp), !dbg !21 // CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !28 // CHECK:STDOUT: br i1 %F.call, label %if.then.loc19, label %if.else.loc19, !dbg !29 // CHECK:STDOUT: @@ -64,193 +64,187 @@ fn For() { // CHECK:STDOUT: br i1 %G.call, label %if.then.loc20, label %if.else.loc20, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc20: ; preds = %if.else.loc19 -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: call void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !21 // CHECK:STDOUT: br label %for.next, !dbg !33 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc20: ; preds = %if.else.loc19 // CHECK:STDOUT: call void @_CH.Main(), !dbg !34 -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: call void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !21 // CHECK:STDOUT: br label %for.next, !dbg !35 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %if.then.loc19, %for.next -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !21 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var), !dbg !21 -// CHECK:STDOUT: call void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %.loc18_32.1.temp), !dbg !20 +// CHECK:STDOUT: call void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %var), !dbg !21 +// CHECK:STDOUT: call void @"_COp.c9184c281ed4335d:core.Destroy.Core"(ptr %.loc18_32.1.temp), !dbg !20 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CRange.Core(ptr sret({ i32, i32 }), i32) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.6f4dee545ed23f91:core.Destroy.Core"(ptr) +// CHECK:STDOUT: declare void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.1d6a7672bf2f14c6:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.c1dffdf44e31057b:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !46 { +// CHECK:STDOUT: define weak_odr void @"_COp.271d79a4f33942b3:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !50 { +// CHECK:STDOUT: define weak_odr void @"_COp.aef98596d3a9e1eb:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5432973a0cb6f903:core.Destroy.Core"(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: define weak_odr void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %self) #0 !dbg !58 { +// CHECK:STDOUT: define weak_odr void @"_COp.e933d5ff8212e171:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.593df19eb3c40d5e:core.Destroy.Core"(ptr %self) #0 !dbg !62 { +// CHECK:STDOUT: define weak_odr void @"_COp.c9184c281ed4335d:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !64 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %self) #0 !dbg !66 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !68 +// CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !72 { -// CHECK:STDOUT: %start = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !77 -// CHECK:STDOUT: %1 = load i32, ptr %start, align 4, !dbg !77 -// CHECK:STDOUT: ret i32 %1, !dbg !78 +// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !68 { +// CHECK:STDOUT: %start = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !73 +// CHECK:STDOUT: %1 = load i32, ptr %start, align 4, !dbg !73 +// CHECK:STDOUT: ret i32 %1, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !80 { -// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !87 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !87 -// CHECK:STDOUT: %2 = load i32, ptr %cursor, align 4, !dbg !89 -// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !87 -// CHECK:STDOUT: %end = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !92 -// CHECK:STDOUT: %3 = load i32, ptr %end, align 4, !dbg !92 -// CHECK:STDOUT: %4 = load i32, ptr %1, align 4, !dbg !91 -// CHECK:STDOUT: %5 = icmp slt i32 %4, %3, !dbg !91 -// CHECK:STDOUT: br i1 %5, label %6, label %8, !dbg !93 +// CHECK:STDOUT: define linkonce_odr void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !76 { +// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !83 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !83 +// CHECK:STDOUT: %2 = load i32, ptr %cursor, align 4, !dbg !85 +// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !83 +// CHECK:STDOUT: %end = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !88 +// CHECK:STDOUT: %3 = load i32, ptr %end, align 4, !dbg !88 +// CHECK:STDOUT: %4 = load i32, ptr %1, align 4, !dbg !87 +// CHECK:STDOUT: %5 = icmp slt i32 %4, %3, !dbg !87 +// CHECK:STDOUT: br i1 %5, label %6, label %8, !dbg !89 // CHECK:STDOUT: // CHECK:STDOUT: 6: ; preds = %0 -// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !96 -// CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !97 -// CHECK:STDOUT: call void @_CSome.Optional.Core.a5214d4ceffb522b(ptr %return, i32 %7), !dbg !98 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !87 -// CHECK:STDOUT: ret void, !dbg !99 +// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !92 +// CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !93 +// CHECK:STDOUT: call void @_CSome.Optional.Core.63bc0bf740b17859(ptr %return, i32 %7), !dbg !94 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %1), !dbg !83 +// CHECK:STDOUT: ret void, !dbg !95 // CHECK:STDOUT: // CHECK:STDOUT: 8: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.a5214d4ceffb522b(ptr %return), !dbg !100 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !87 -// CHECK:STDOUT: ret void, !dbg !101 +// CHECK:STDOUT: call void @_CNone.Optional.Core.63bc0bf740b17859(ptr %return), !dbg !96 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %1), !dbg !83 +// CHECK:STDOUT: ret void, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !104 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !110 -// CHECK:STDOUT: ret i1 %1, !dbg !111 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.63bc0bf740b17859(ptr %self) #0 !dbg !100 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %self), !dbg !106 +// CHECK:STDOUT: ret i1 %1, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !113 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !119 -// CHECK:STDOUT: ret i32 %1, !dbg !120 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.63bc0bf740b17859(ptr %self) #0 !dbg !109 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %self), !dbg !115 +// CHECK:STDOUT: ret i32 %1, !dbg !116 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CInclusiveRange.Core(ptr sret({ i32, i32 }), i32, i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !123 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !126 -// CHECK:STDOUT: ret void, !dbg !129 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !119 { +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !122 +// CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !131 { -// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return, i32 %value), !dbg !136 -// CHECK:STDOUT: ret void, !dbg !137 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.63bc0bf740b17859(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !127 { +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %return, i32 %value), !dbg !132 +// CHECK:STDOUT: ret void, !dbg !133 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !139 { -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return), !dbg !142 -// CHECK:STDOUT: ret void, !dbg !143 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.63bc0bf740b17859(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !135 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %return), !dbg !138 +// CHECK:STDOUT: ret void, !dbg !139 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !144 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !149 -// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !149 -// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !149 -// CHECK:STDOUT: ret i1 %2, !dbg !150 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %value) #0 !dbg !140 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !145 +// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !145 +// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !145 +// CHECK:STDOUT: ret i1 %2, !dbg !146 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !152 { -// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !157 -// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !157 -// CHECK:STDOUT: ret i32 %1, !dbg !158 +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %value) #0 !dbg !148 { +// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !153 +// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !153 +// CHECK:STDOUT: ret i32 %1, !dbg !154 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !160 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !163 -// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !164 -// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !164 -// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !164 -// CHECK:STDOUT: ret void, !dbg !164 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !156 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !159 +// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !160 +// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !160 +// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !160 +// CHECK:STDOUT: ret void, !dbg !160 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !168 { -// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !177 -// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !177 -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !179 -// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !179 -// CHECK:STDOUT: ret void, !dbg !180 +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !164 { +// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !173 +// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !173 +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !175 +// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !175 +// CHECK:STDOUT: ret void, !dbg !176 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !182 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !189 -// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !189 -// CHECK:STDOUT: ret void, !dbg !190 +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !178 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !185 +// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !185 +// CHECK:STDOUT: ret void, !dbg !186 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !191 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !196 -// CHECK:STDOUT: ret i32 %1, !dbg !198 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !187 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !192 +// CHECK:STDOUT: ret i32 %1, !dbg !194 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !200 { -// CHECK:STDOUT: ret i32 %self, !dbg !206 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !196 { +// CHECK:STDOUT: ret i32 %self, !dbg !202 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.79101dbcae945290:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.1423d794a4867d77:core.Destroy.Core", { 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 3, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -294,120 +288,116 @@ fn For() { // CHECK:STDOUT: !34 = !DILocation(line: 21, column: 5, scope: !18) // CHECK:STDOUT: !35 = !DILocation(line: 18, column: 3, scope: !18) // CHECK:STDOUT: !36 = !DILocation(line: 17, column: 1, scope: !18) -// CHECK:STDOUT: !37 = !DIFile(filename: "{{.*}}/prelude/range.carbon", directory: "") -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !37, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !6) -// CHECK:STDOUT: !40 = !DILocation(line: 18, column: 39, scope: !38) -// CHECK:STDOUT: !41 = !{!39} -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !7) -// CHECK:STDOUT: !44 = !DILocation(line: 18, column: 7, scope: !42) -// CHECK:STDOUT: !45 = !{!43} -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !6) -// CHECK:STDOUT: !48 = !DILocation(line: 18, column: 7, scope: !46) -// CHECK:STDOUT: !49 = !{!47} -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !53) -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !7) -// CHECK:STDOUT: !52 = !DILocation(line: 18, column: 7, scope: !50) -// CHECK:STDOUT: !53 = !{!51} -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5432973a0cb6f903:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !57) -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !7) -// CHECK:STDOUT: !56 = !DILocation(line: 18, column: 7, scope: !54) -// CHECK:STDOUT: !57 = !{!55} -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.79101dbcae945290:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !61) -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !7) -// CHECK:STDOUT: !60 = !DILocation(line: 18, column: 7, scope: !58) -// CHECK:STDOUT: !61 = !{!59} -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.593df19eb3c40d5e:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !65) -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !7) -// CHECK:STDOUT: !64 = !DILocation(line: 18, column: 18, scope: !62) -// CHECK:STDOUT: !65 = !{!63} -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Op", linkageName: "_COp.58d03c615b8abca5:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !69) -// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !7) -// CHECK:STDOUT: !68 = !DILocation(line: 18, column: 18, scope: !66) -// CHECK:STDOUT: !69 = !{!67} -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !37, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !79) -// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !7) -// CHECK:STDOUT: !77 = !DILocation(line: 19, column: 43, scope: !72) -// CHECK:STDOUT: !78 = !DILocation(line: 19, column: 36, scope: !72) -// CHECK:STDOUT: !79 = !{!73} -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !37, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !102) -// CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !80, type: !7) -// CHECK:STDOUT: !82 = !DILocalVariable(arg: 2, scope: !80, type: !7) -// CHECK:STDOUT: !87 = !DILocation(line: 21, column: 7, scope: !80) -// CHECK:STDOUT: !89 = !DILocation(line: 21, column: 27, scope: !80) -// CHECK:STDOUT: !91 = !DILocation(line: 22, column: 11, scope: !80) -// CHECK:STDOUT: !92 = !DILocation(line: 22, column: 19, scope: !80) -// CHECK:STDOUT: !93 = !DILocation(line: 22, column: 10, scope: !80) -// CHECK:STDOUT: !96 = !DILocation(line: 23, column: 9, scope: !80) -// CHECK:STDOUT: !97 = !DILocation(line: 24, column: 38, scope: !80) -// CHECK:STDOUT: !98 = !DILocation(line: 24, column: 16, scope: !80) -// CHECK:STDOUT: !99 = !DILocation(line: 24, column: 9, scope: !80) -// CHECK:STDOUT: !100 = !DILocation(line: 26, column: 16, scope: !80) -// CHECK:STDOUT: !101 = !DILocation(line: 26, column: 9, scope: !80) -// CHECK:STDOUT: !102 = !{!81, !82} -// CHECK:STDOUT: !103 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a5214d4ceffb522b", scope: null, file: !103, line: 36, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !112) -// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !104, type: !7) -// CHECK:STDOUT: !110 = !DILocation(line: 37, column: 12, scope: !104) -// CHECK:STDOUT: !111 = !DILocation(line: 37, column: 5, scope: !104) -// CHECK:STDOUT: !112 = !{!105} -// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a5214d4ceffb522b", scope: null, file: !103, line: 39, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !121) -// CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !113, type: !7) -// CHECK:STDOUT: !119 = !DILocation(line: 40, column: 12, scope: !113) -// CHECK:STDOUT: !120 = !DILocation(line: 40, column: 5, scope: !113) -// CHECK:STDOUT: !121 = !{!114} -// CHECK:STDOUT: !122 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !122, line: 396, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !130) -// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !6) -// CHECK:STDOUT: !126 = !DILocation(line: 398, column: 5, scope: !123) -// CHECK:STDOUT: !127 = !{null, !6, !6} -// CHECK:STDOUT: !128 = !DISubroutineType(types: !127) -// CHECK:STDOUT: !129 = !DILocation(line: 396, column: 3, scope: !123) -// CHECK:STDOUT: !130 = !{!124} -// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a5214d4ceffb522b", scope: null, file: !103, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !138) -// CHECK:STDOUT: !132 = !DILocalVariable(arg: 1, scope: !131, type: !6) -// CHECK:STDOUT: !136 = !DILocation(line: 34, column: 12, scope: !131) -// CHECK:STDOUT: !137 = !DILocation(line: 34, column: 5, scope: !131) -// CHECK:STDOUT: !138 = !{!132} -// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a5214d4ceffb522b", scope: null, file: !103, line: 30, type: !9, spFlags: DISPFlagDefinition, unit: !5) -// CHECK:STDOUT: !142 = !DILocation(line: 31, column: 12, scope: !139) -// CHECK:STDOUT: !143 = !DILocation(line: 31, column: 5, scope: !139) -// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !103, line: 141, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !151) -// CHECK:STDOUT: !145 = !DILocalVariable(arg: 1, scope: !144, type: !7) -// CHECK:STDOUT: !149 = !DILocation(line: 142, column: 12, scope: !144) -// CHECK:STDOUT: !150 = !DILocation(line: 142, column: 5, scope: !144) -// CHECK:STDOUT: !151 = !{!145} -// CHECK:STDOUT: !152 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !103, line: 144, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !159) -// CHECK:STDOUT: !153 = !DILocalVariable(arg: 1, scope: !152, type: !7) -// CHECK:STDOUT: !157 = !DILocation(line: 145, column: 12, scope: !152) -// CHECK:STDOUT: !158 = !DILocation(line: 145, column: 5, scope: !152) -// CHECK:STDOUT: !159 = !{!153} -// CHECK:STDOUT: !160 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !122, line: 331, type: !128, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !167) -// CHECK:STDOUT: !161 = !DILocalVariable(arg: 1, scope: !160, type: !6) -// CHECK:STDOUT: !162 = !DILocalVariable(arg: 2, scope: !160, type: !6) -// CHECK:STDOUT: !163 = !DILocation(line: 0, scope: !160) -// CHECK:STDOUT: !164 = !DILocation(line: 331, column: 3, scope: !160) -// CHECK:STDOUT: !165 = !{!6, !6} -// CHECK:STDOUT: !166 = !DISubroutineType(types: !165) -// CHECK:STDOUT: !167 = !{!161, !162} -// CHECK:STDOUT: !168 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !103, line: 131, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !181) -// CHECK:STDOUT: !169 = !DILocalVariable(arg: 1, scope: !168, type: !6) -// CHECK:STDOUT: !177 = !DILocation(line: 137, column: 5, scope: !168) -// CHECK:STDOUT: !179 = !DILocation(line: 138, column: 5, scope: !168) -// CHECK:STDOUT: !180 = !DILocation(line: 139, column: 5, scope: !168) -// CHECK:STDOUT: !181 = !{!169} -// CHECK:STDOUT: !182 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !103, line: 125, type: !9, spFlags: DISPFlagDefinition, unit: !5) -// CHECK:STDOUT: !189 = !DILocation(line: 128, column: 5, scope: !182) -// CHECK:STDOUT: !190 = !DILocation(line: 129, column: 5, scope: !182) -// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !122, line: 64, type: !166, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !199) -// CHECK:STDOUT: !192 = !DILocalVariable(arg: 1, scope: !191, type: !6) -// CHECK:STDOUT: !196 = !DILocation(line: 66, column: 17, scope: !191) -// CHECK:STDOUT: !198 = !DILocation(line: 66, column: 5, scope: !191) -// CHECK:STDOUT: !199 = !{!192} -// CHECK:STDOUT: !200 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !122, line: 59, type: !166, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !207) -// CHECK:STDOUT: !201 = !DILocalVariable(arg: 1, scope: !200, type: !6) -// CHECK:STDOUT: !206 = !DILocation(line: 59, column: 28, scope: !200) -// CHECK:STDOUT: !207 = !{!201} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1d6a7672bf2f14c6:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !7) +// CHECK:STDOUT: !39 = !DILocation(line: 18, column: 7, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c1dffdf44e31057b:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !6) +// CHECK:STDOUT: !43 = !DILocation(line: 18, column: 7, scope: !41) +// CHECK:STDOUT: !44 = !{!42} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.271d79a4f33942b3:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !7) +// CHECK:STDOUT: !47 = !DILocation(line: 18, column: 7, scope: !45) +// CHECK:STDOUT: !48 = !{!46} +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.aef98596d3a9e1eb:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !52) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !7) +// CHECK:STDOUT: !51 = !DILocation(line: 18, column: 7, scope: !49) +// CHECK:STDOUT: !52 = !{!50} +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1423d794a4867d77:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !56) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !7) +// CHECK:STDOUT: !55 = !DILocation(line: 18, column: 7, scope: !53) +// CHECK:STDOUT: !56 = !{!54} +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e933d5ff8212e171:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !60) +// CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !57, type: !7) +// CHECK:STDOUT: !59 = !DILocation(line: 18, column: 18, scope: !57) +// CHECK:STDOUT: !60 = !{!58} +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c9184c281ed4335d:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !64) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !7) +// CHECK:STDOUT: !63 = !DILocation(line: 18, column: 18, scope: !61) +// CHECK:STDOUT: !64 = !{!62} +// CHECK:STDOUT: !67 = !DIFile(filename: "{{.*}}/prelude/range.carbon", directory: "") +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !67, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !75) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !7) +// CHECK:STDOUT: !73 = !DILocation(line: 19, column: 43, scope: !68) +// CHECK:STDOUT: !74 = !DILocation(line: 19, column: 36, scope: !68) +// CHECK:STDOUT: !75 = !{!69} +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !67, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !98) +// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !76, type: !7) +// CHECK:STDOUT: !78 = !DILocalVariable(arg: 2, scope: !76, type: !7) +// CHECK:STDOUT: !83 = !DILocation(line: 21, column: 7, scope: !76) +// CHECK:STDOUT: !85 = !DILocation(line: 21, column: 27, scope: !76) +// CHECK:STDOUT: !87 = !DILocation(line: 22, column: 11, scope: !76) +// CHECK:STDOUT: !88 = !DILocation(line: 22, column: 19, scope: !76) +// CHECK:STDOUT: !89 = !DILocation(line: 22, column: 10, scope: !76) +// CHECK:STDOUT: !92 = !DILocation(line: 23, column: 9, scope: !76) +// CHECK:STDOUT: !93 = !DILocation(line: 24, column: 38, scope: !76) +// CHECK:STDOUT: !94 = !DILocation(line: 24, column: 16, scope: !76) +// CHECK:STDOUT: !95 = !DILocation(line: 24, column: 9, scope: !76) +// CHECK:STDOUT: !96 = !DILocation(line: 26, column: 16, scope: !76) +// CHECK:STDOUT: !97 = !DILocation(line: 26, column: 9, scope: !76) +// CHECK:STDOUT: !98 = !{!77, !78} +// CHECK:STDOUT: !99 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.63bc0bf740b17859", scope: null, file: !99, line: 36, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !108) +// CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !100, type: !7) +// CHECK:STDOUT: !106 = !DILocation(line: 37, column: 12, scope: !100) +// CHECK:STDOUT: !107 = !DILocation(line: 37, column: 5, scope: !100) +// CHECK:STDOUT: !108 = !{!101} +// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.63bc0bf740b17859", scope: null, file: !99, line: 39, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !117) +// CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !109, type: !7) +// CHECK:STDOUT: !115 = !DILocation(line: 40, column: 12, scope: !109) +// CHECK:STDOUT: !116 = !DILocation(line: 40, column: 5, scope: !109) +// CHECK:STDOUT: !117 = !{!110} +// CHECK:STDOUT: !118 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !118, line: 396, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !126) +// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !6) +// CHECK:STDOUT: !122 = !DILocation(line: 398, column: 5, scope: !119) +// CHECK:STDOUT: !123 = !{null, !6, !6} +// CHECK:STDOUT: !124 = !DISubroutineType(types: !123) +// CHECK:STDOUT: !125 = !DILocation(line: 396, column: 3, scope: !119) +// CHECK:STDOUT: !126 = !{!120} +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.63bc0bf740b17859", scope: null, file: !99, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !134) +// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !6) +// CHECK:STDOUT: !132 = !DILocation(line: 34, column: 12, scope: !127) +// CHECK:STDOUT: !133 = !DILocation(line: 34, column: 5, scope: !127) +// CHECK:STDOUT: !134 = !{!128} +// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.63bc0bf740b17859", scope: null, file: !99, line: 30, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !138 = !DILocation(line: 31, column: 12, scope: !135) +// CHECK:STDOUT: !139 = !DILocation(line: 31, column: 5, scope: !135) +// CHECK:STDOUT: !140 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !99, line: 141, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !147) +// CHECK:STDOUT: !141 = !DILocalVariable(arg: 1, scope: !140, type: !7) +// CHECK:STDOUT: !145 = !DILocation(line: 142, column: 12, scope: !140) +// CHECK:STDOUT: !146 = !DILocation(line: 142, column: 5, scope: !140) +// CHECK:STDOUT: !147 = !{!141} +// CHECK:STDOUT: !148 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !99, line: 144, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !155) +// CHECK:STDOUT: !149 = !DILocalVariable(arg: 1, scope: !148, type: !7) +// CHECK:STDOUT: !153 = !DILocation(line: 145, column: 12, scope: !148) +// CHECK:STDOUT: !154 = !DILocation(line: 145, column: 5, scope: !148) +// CHECK:STDOUT: !155 = !{!149} +// CHECK:STDOUT: !156 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !118, line: 331, type: !124, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !163) +// CHECK:STDOUT: !157 = !DILocalVariable(arg: 1, scope: !156, type: !6) +// CHECK:STDOUT: !158 = !DILocalVariable(arg: 2, scope: !156, type: !6) +// CHECK:STDOUT: !159 = !DILocation(line: 0, scope: !156) +// CHECK:STDOUT: !160 = !DILocation(line: 331, column: 3, scope: !156) +// CHECK:STDOUT: !161 = !{!6, !6} +// CHECK:STDOUT: !162 = !DISubroutineType(types: !161) +// CHECK:STDOUT: !163 = !{!157, !158} +// CHECK:STDOUT: !164 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !99, line: 131, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !177) +// CHECK:STDOUT: !165 = !DILocalVariable(arg: 1, scope: !164, type: !6) +// CHECK:STDOUT: !173 = !DILocation(line: 137, column: 5, scope: !164) +// CHECK:STDOUT: !175 = !DILocation(line: 138, column: 5, scope: !164) +// CHECK:STDOUT: !176 = !DILocation(line: 139, column: 5, scope: !164) +// CHECK:STDOUT: !177 = !{!165} +// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !99, line: 125, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !185 = !DILocation(line: 128, column: 5, scope: !178) +// CHECK:STDOUT: !186 = !DILocation(line: 129, column: 5, scope: !178) +// CHECK:STDOUT: !187 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !118, line: 64, type: !162, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !195) +// CHECK:STDOUT: !188 = !DILocalVariable(arg: 1, scope: !187, type: !6) +// CHECK:STDOUT: !192 = !DILocation(line: 66, column: 17, scope: !187) +// CHECK:STDOUT: !194 = !DILocation(line: 66, column: 5, scope: !187) +// CHECK:STDOUT: !195 = !{!188} +// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !118, line: 59, type: !162, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !203) +// CHECK:STDOUT: !197 = !DILocalVariable(arg: 1, scope: !196, type: !6) +// CHECK:STDOUT: !202 = !DILocation(line: 59, column: 28, scope: !196) +// CHECK:STDOUT: !203 = !{!197} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/for/for.carbon b/toolchain/lower/testdata/for/for.carbon index 9de63dbada52..63b0ca27cdae 100644 --- a/toolchain/lower/testdata/for/for.carbon +++ b/toolchain/lower/testdata/for/for.carbon @@ -49,195 +49,189 @@ fn For() { // CHECK:STDOUT: for.next: ; preds = %for.body, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_33.1.temp), !dbg !20 // CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc19_33.1.temp, ptr %.loc19_32.1.temp, ptr %var), !dbg !20 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %.loc19_33.1.temp), !dbg !20 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.63bc0bf740b17859(ptr %.loc19_33.1.temp), !dbg !20 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !20 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %.loc19_33.1.temp), !dbg !20 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.63bc0bf740b17859(ptr %.loc19_33.1.temp), !dbg !20 // CHECK:STDOUT: call void @_CG.Main(), !dbg !27 -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc19_33.1.temp), !dbg !20 +// CHECK:STDOUT: call void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %.loc19_33.1.temp), !dbg !20 // CHECK:STDOUT: br label %for.next, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc19_33.1.temp), !dbg !20 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var), !dbg !20 -// CHECK:STDOUT: call void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !19 +// CHECK:STDOUT: call void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %.loc19_33.1.temp), !dbg !20 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %var), !dbg !20 +// CHECK:STDOUT: call void @"_COp.c9184c281ed4335d:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !19 // CHECK:STDOUT: call void @_CH.Main(), !dbg !29 // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CRange.Core(ptr sret({ i32, i32 }), i32) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.6f4dee545ed23f91:core.Destroy.Core"(ptr) +// CHECK:STDOUT: declare void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.1d6a7672bf2f14c6:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp.c1dffdf44e31057b:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.271d79a4f33942b3:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.aef98596d3a9e1eb:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !46 +// CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5432973a0cb6f903:core.Destroy.Core"(ptr %self) #0 !dbg !48 { +// CHECK:STDOUT: define weak_odr void @"_COp.1423d794a4867d77:core.Destroy.Core"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !50 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %self) #0 !dbg !52 { +// CHECK:STDOUT: define weak_odr void @"_COp.e933d5ff8212e171:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !54 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.593df19eb3c40d5e:core.Destroy.Core"(ptr %self) #0 !dbg !56 { +// CHECK:STDOUT: define weak_odr void @"_COp.c9184c281ed4335d:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !58 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %self) #0 !dbg !60 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !62 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !66 { -// CHECK:STDOUT: %start = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !71 -// CHECK:STDOUT: %1 = load i32, ptr %start, align 4, !dbg !71 -// CHECK:STDOUT: ret i32 %1, !dbg !72 +// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !62 { +// CHECK:STDOUT: %start = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !67 +// CHECK:STDOUT: %1 = load i32, ptr %start, align 4, !dbg !67 +// CHECK:STDOUT: ret i32 %1, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !74 { -// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !81 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !81 -// CHECK:STDOUT: %2 = load i32, ptr %cursor, align 4, !dbg !83 -// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !81 -// CHECK:STDOUT: %end = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !86 -// CHECK:STDOUT: %3 = load i32, ptr %end, align 4, !dbg !86 -// CHECK:STDOUT: %4 = load i32, ptr %1, align 4, !dbg !85 -// CHECK:STDOUT: %5 = icmp slt i32 %4, %3, !dbg !85 -// CHECK:STDOUT: br i1 %5, label %6, label %8, !dbg !87 +// CHECK:STDOUT: define linkonce_odr void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !70 { +// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !77 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !77 +// CHECK:STDOUT: %2 = load i32, ptr %cursor, align 4, !dbg !79 +// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !77 +// CHECK:STDOUT: %end = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !82 +// CHECK:STDOUT: %3 = load i32, ptr %end, align 4, !dbg !82 +// CHECK:STDOUT: %4 = load i32, ptr %1, align 4, !dbg !81 +// CHECK:STDOUT: %5 = icmp slt i32 %4, %3, !dbg !81 +// CHECK:STDOUT: br i1 %5, label %6, label %8, !dbg !83 // CHECK:STDOUT: // CHECK:STDOUT: 6: ; preds = %0 -// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !90 -// CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !91 -// CHECK:STDOUT: call void @_CSome.Optional.Core.a5214d4ceffb522b(ptr %return, i32 %7), !dbg !92 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !81 -// CHECK:STDOUT: ret void, !dbg !93 +// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !86 +// CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !87 +// CHECK:STDOUT: call void @_CSome.Optional.Core.63bc0bf740b17859(ptr %return, i32 %7), !dbg !88 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %1), !dbg !77 +// CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: // CHECK:STDOUT: 8: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.a5214d4ceffb522b(ptr %return), !dbg !94 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !81 -// CHECK:STDOUT: ret void, !dbg !97 +// CHECK:STDOUT: call void @_CNone.Optional.Core.63bc0bf740b17859(ptr %return), !dbg !90 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %1), !dbg !77 +// CHECK:STDOUT: ret void, !dbg !93 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !100 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !106 -// CHECK:STDOUT: ret i1 %1, !dbg !107 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.63bc0bf740b17859(ptr %self) #0 !dbg !96 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %self), !dbg !102 +// CHECK:STDOUT: ret i1 %1, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !109 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !115 -// CHECK:STDOUT: ret i32 %1, !dbg !116 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.63bc0bf740b17859(ptr %self) #0 !dbg !105 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %self), !dbg !111 +// CHECK:STDOUT: ret i32 %1, !dbg !112 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CInclusiveRange.Core(ptr sret({ i32, i32 }), i32, i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !119 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !122 -// CHECK:STDOUT: ret void, !dbg !125 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !115 { +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !118 +// CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !127 { -// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return, i32 %value), !dbg !132 -// CHECK:STDOUT: ret void, !dbg !133 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.63bc0bf740b17859(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !123 { +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %return, i32 %value), !dbg !128 +// CHECK:STDOUT: ret void, !dbg !129 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !135 { -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return), !dbg !138 -// CHECK:STDOUT: ret void, !dbg !139 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.63bc0bf740b17859(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !131 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %return), !dbg !134 +// CHECK:STDOUT: ret void, !dbg !135 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !140 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !145 -// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !145 -// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !145 -// CHECK:STDOUT: ret i1 %2, !dbg !146 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %value) #0 !dbg !136 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !141 +// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !141 +// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !141 +// CHECK:STDOUT: ret i1 %2, !dbg !142 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !148 { -// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !153 -// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !153 -// CHECK:STDOUT: ret i32 %1, !dbg !154 +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr %value) #0 !dbg !144 { +// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !149 +// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !149 +// CHECK:STDOUT: ret i32 %1, !dbg !150 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !156 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !159 -// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !160 -// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !160 -// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !160 -// CHECK:STDOUT: ret void, !dbg !160 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !152 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !155 +// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !156 +// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !156 +// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !156 +// CHECK:STDOUT: ret void, !dbg !156 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !164 { -// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !173 -// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !173 -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !175 -// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !175 -// CHECK:STDOUT: ret void, !dbg !176 +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !160 { +// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !169 +// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !169 +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !171 +// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !171 +// CHECK:STDOUT: ret void, !dbg !172 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !178 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !185 -// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !185 -// CHECK:STDOUT: ret void, !dbg !186 +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !174 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !181 +// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !181 +// CHECK:STDOUT: ret void, !dbg !182 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !187 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !192 -// CHECK:STDOUT: ret i32 %1, !dbg !194 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !183 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !188 +// CHECK:STDOUT: ret i32 %1, !dbg !190 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !196 { -// CHECK:STDOUT: ret i32 %self, !dbg !202 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !192 { +// CHECK:STDOUT: ret i32 %self, !dbg !198 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.79101dbcae945290:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.1423d794a4867d77:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 3, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -275,122 +269,118 @@ fn For() { // CHECK:STDOUT: !28 = !DILocation(line: 19, column: 3, scope: !16) // CHECK:STDOUT: !29 = !DILocation(line: 22, column: 3, scope: !16) // CHECK:STDOUT: !30 = !DILocation(line: 17, column: 1, scope: !16) -// CHECK:STDOUT: !31 = !DIFile(filename: "{{.*}}/prelude/range.carbon", directory: "") -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !31, line: 18, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !6) -// CHECK:STDOUT: !34 = !DILocation(line: 18, column: 39, scope: !32) -// CHECK:STDOUT: !35 = !{!33} -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !39) -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !9) -// CHECK:STDOUT: !38 = !DILocation(line: 19, column: 7, scope: !36) -// CHECK:STDOUT: !39 = !{!37} -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !4, line: 19, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !6) -// CHECK:STDOUT: !42 = !DILocation(line: 19, column: 7, scope: !40) -// CHECK:STDOUT: !43 = !{!41} -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !9) -// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 7, scope: !44) -// CHECK:STDOUT: !47 = !{!45} -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5432973a0cb6f903:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !51) -// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !9) -// CHECK:STDOUT: !50 = !DILocation(line: 19, column: 7, scope: !48) -// CHECK:STDOUT: !51 = !{!49} -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.79101dbcae945290:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) -// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !9) -// CHECK:STDOUT: !54 = !DILocation(line: 19, column: 7, scope: !52) -// CHECK:STDOUT: !55 = !{!53} -// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.593df19eb3c40d5e:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !59) -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !9) -// CHECK:STDOUT: !58 = !DILocation(line: 19, column: 18, scope: !56) -// CHECK:STDOUT: !59 = !{!57} -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.58d03c615b8abca5:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) -// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !9) -// CHECK:STDOUT: !62 = !DILocation(line: 19, column: 18, scope: !60) -// CHECK:STDOUT: !63 = !{!61} -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !31, line: 19, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !73) -// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !9) -// CHECK:STDOUT: !71 = !DILocation(line: 19, column: 43, scope: !66) -// CHECK:STDOUT: !72 = !DILocation(line: 19, column: 36, scope: !66) -// CHECK:STDOUT: !73 = !{!67} -// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !31, line: 20, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !98) -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !9) -// CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !74, type: !9) -// CHECK:STDOUT: !81 = !DILocation(line: 21, column: 7, scope: !74) -// CHECK:STDOUT: !83 = !DILocation(line: 21, column: 27, scope: !74) -// CHECK:STDOUT: !85 = !DILocation(line: 22, column: 11, scope: !74) -// CHECK:STDOUT: !86 = !DILocation(line: 22, column: 19, scope: !74) -// CHECK:STDOUT: !87 = !DILocation(line: 22, column: 10, scope: !74) -// CHECK:STDOUT: !90 = !DILocation(line: 23, column: 9, scope: !74) -// CHECK:STDOUT: !91 = !DILocation(line: 24, column: 38, scope: !74) -// CHECK:STDOUT: !92 = !DILocation(line: 24, column: 16, scope: !74) -// CHECK:STDOUT: !93 = !DILocation(line: 24, column: 9, scope: !74) -// CHECK:STDOUT: !94 = !DILocation(line: 26, column: 16, scope: !74) -// CHECK:STDOUT: !95 = !{!9} -// CHECK:STDOUT: !96 = !DISubroutineType(types: !95) -// CHECK:STDOUT: !97 = !DILocation(line: 26, column: 9, scope: !74) -// CHECK:STDOUT: !98 = !{!75, !76} -// CHECK:STDOUT: !99 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a5214d4ceffb522b", scope: null, file: !99, line: 36, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !108) -// CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !100, type: !9) -// CHECK:STDOUT: !106 = !DILocation(line: 37, column: 12, scope: !100) -// CHECK:STDOUT: !107 = !DILocation(line: 37, column: 5, scope: !100) -// CHECK:STDOUT: !108 = !{!101} -// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a5214d4ceffb522b", scope: null, file: !99, line: 39, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !117) -// CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !109, type: !9) -// CHECK:STDOUT: !115 = !DILocation(line: 40, column: 12, scope: !109) -// CHECK:STDOUT: !116 = !DILocation(line: 40, column: 5, scope: !109) -// CHECK:STDOUT: !117 = !{!110} -// CHECK:STDOUT: !118 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !118, line: 396, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !126) -// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !6) -// CHECK:STDOUT: !122 = !DILocation(line: 398, column: 5, scope: !119) -// CHECK:STDOUT: !123 = !{null, !6, !6} -// CHECK:STDOUT: !124 = !DISubroutineType(types: !123) -// CHECK:STDOUT: !125 = !DILocation(line: 396, column: 3, scope: !119) -// CHECK:STDOUT: !126 = !{!120} -// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a5214d4ceffb522b", scope: null, file: !99, line: 33, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !134) -// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !6) -// CHECK:STDOUT: !132 = !DILocation(line: 34, column: 12, scope: !127) -// CHECK:STDOUT: !133 = !DILocation(line: 34, column: 5, scope: !127) -// CHECK:STDOUT: !134 = !{!128} -// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a5214d4ceffb522b", scope: null, file: !99, line: 30, type: !96, spFlags: DISPFlagDefinition, unit: !5) -// CHECK:STDOUT: !138 = !DILocation(line: 31, column: 12, scope: !135) -// CHECK:STDOUT: !139 = !DILocation(line: 31, column: 5, scope: !135) -// CHECK:STDOUT: !140 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !99, line: 141, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !147) -// CHECK:STDOUT: !141 = !DILocalVariable(arg: 1, scope: !140, type: !9) -// CHECK:STDOUT: !145 = !DILocation(line: 142, column: 12, scope: !140) -// CHECK:STDOUT: !146 = !DILocation(line: 142, column: 5, scope: !140) -// CHECK:STDOUT: !147 = !{!141} -// CHECK:STDOUT: !148 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !99, line: 144, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !155) -// CHECK:STDOUT: !149 = !DILocalVariable(arg: 1, scope: !148, type: !9) -// CHECK:STDOUT: !153 = !DILocation(line: 145, column: 12, scope: !148) -// CHECK:STDOUT: !154 = !DILocation(line: 145, column: 5, scope: !148) -// CHECK:STDOUT: !155 = !{!149} -// CHECK:STDOUT: !156 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !118, line: 331, type: !124, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !163) -// CHECK:STDOUT: !157 = !DILocalVariable(arg: 1, scope: !156, type: !6) -// CHECK:STDOUT: !158 = !DILocalVariable(arg: 2, scope: !156, type: !6) -// CHECK:STDOUT: !159 = !DILocation(line: 0, scope: !156) -// CHECK:STDOUT: !160 = !DILocation(line: 331, column: 3, scope: !156) -// CHECK:STDOUT: !161 = !{!6, !6} -// CHECK:STDOUT: !162 = !DISubroutineType(types: !161) -// CHECK:STDOUT: !163 = !{!157, !158} -// CHECK:STDOUT: !164 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !99, line: 131, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !177) -// CHECK:STDOUT: !165 = !DILocalVariable(arg: 1, scope: !164, type: !6) -// CHECK:STDOUT: !173 = !DILocation(line: 137, column: 5, scope: !164) -// CHECK:STDOUT: !175 = !DILocation(line: 138, column: 5, scope: !164) -// CHECK:STDOUT: !176 = !DILocation(line: 139, column: 5, scope: !164) -// CHECK:STDOUT: !177 = !{!165} -// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !99, line: 125, type: !96, spFlags: DISPFlagDefinition, unit: !5) -// CHECK:STDOUT: !185 = !DILocation(line: 128, column: 5, scope: !178) -// CHECK:STDOUT: !186 = !DILocation(line: 129, column: 5, scope: !178) -// CHECK:STDOUT: !187 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !118, line: 64, type: !162, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !195) -// CHECK:STDOUT: !188 = !DILocalVariable(arg: 1, scope: !187, type: !6) -// CHECK:STDOUT: !192 = !DILocation(line: 66, column: 17, scope: !187) -// CHECK:STDOUT: !194 = !DILocation(line: 66, column: 5, scope: !187) -// CHECK:STDOUT: !195 = !{!188} -// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !118, line: 59, type: !162, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !203) -// CHECK:STDOUT: !197 = !DILocalVariable(arg: 1, scope: !196, type: !6) -// CHECK:STDOUT: !202 = !DILocation(line: 59, column: 28, scope: !196) -// CHECK:STDOUT: !203 = !{!197} +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1d6a7672bf2f14c6:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !9) +// CHECK:STDOUT: !33 = !DILocation(line: 19, column: 7, scope: !31) +// CHECK:STDOUT: !34 = !{!32} +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c1dffdf44e31057b:core.Destroy.Core", scope: null, file: !4, line: 19, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) +// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !6) +// CHECK:STDOUT: !37 = !DILocation(line: 19, column: 7, scope: !35) +// CHECK:STDOUT: !38 = !{!36} +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.271d79a4f33942b3:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) +// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !9) +// CHECK:STDOUT: !41 = !DILocation(line: 19, column: 7, scope: !39) +// CHECK:STDOUT: !42 = !{!40} +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.aef98596d3a9e1eb:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !9) +// CHECK:STDOUT: !45 = !DILocation(line: 19, column: 7, scope: !43) +// CHECK:STDOUT: !46 = !{!44} +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1423d794a4867d77:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) +// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !9) +// CHECK:STDOUT: !49 = !DILocation(line: 19, column: 7, scope: !47) +// CHECK:STDOUT: !50 = !{!48} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e933d5ff8212e171:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !54) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !9) +// CHECK:STDOUT: !53 = !DILocation(line: 19, column: 18, scope: !51) +// CHECK:STDOUT: !54 = !{!52} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c9184c281ed4335d:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !9) +// CHECK:STDOUT: !57 = !DILocation(line: 19, column: 18, scope: !55) +// CHECK:STDOUT: !58 = !{!56} +// CHECK:STDOUT: !61 = !DIFile(filename: "{{.*}}/prelude/range.carbon", directory: "") +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !61, line: 19, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !69) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !9) +// CHECK:STDOUT: !67 = !DILocation(line: 19, column: 43, scope: !62) +// CHECK:STDOUT: !68 = !DILocation(line: 19, column: 36, scope: !62) +// CHECK:STDOUT: !69 = !{!63} +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !61, line: 20, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !94) +// CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !70, type: !9) +// CHECK:STDOUT: !72 = !DILocalVariable(arg: 2, scope: !70, type: !9) +// CHECK:STDOUT: !77 = !DILocation(line: 21, column: 7, scope: !70) +// CHECK:STDOUT: !79 = !DILocation(line: 21, column: 27, scope: !70) +// CHECK:STDOUT: !81 = !DILocation(line: 22, column: 11, scope: !70) +// CHECK:STDOUT: !82 = !DILocation(line: 22, column: 19, scope: !70) +// CHECK:STDOUT: !83 = !DILocation(line: 22, column: 10, scope: !70) +// CHECK:STDOUT: !86 = !DILocation(line: 23, column: 9, scope: !70) +// CHECK:STDOUT: !87 = !DILocation(line: 24, column: 38, scope: !70) +// CHECK:STDOUT: !88 = !DILocation(line: 24, column: 16, scope: !70) +// CHECK:STDOUT: !89 = !DILocation(line: 24, column: 9, scope: !70) +// CHECK:STDOUT: !90 = !DILocation(line: 26, column: 16, scope: !70) +// CHECK:STDOUT: !91 = !{!9} +// CHECK:STDOUT: !92 = !DISubroutineType(types: !91) +// CHECK:STDOUT: !93 = !DILocation(line: 26, column: 9, scope: !70) +// CHECK:STDOUT: !94 = !{!71, !72} +// CHECK:STDOUT: !95 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.63bc0bf740b17859", scope: null, file: !95, line: 36, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !104) +// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !9) +// CHECK:STDOUT: !102 = !DILocation(line: 37, column: 12, scope: !96) +// CHECK:STDOUT: !103 = !DILocation(line: 37, column: 5, scope: !96) +// CHECK:STDOUT: !104 = !{!97} +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.63bc0bf740b17859", scope: null, file: !95, line: 39, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !113) +// CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !105, type: !9) +// CHECK:STDOUT: !111 = !DILocation(line: 40, column: 12, scope: !105) +// CHECK:STDOUT: !112 = !DILocation(line: 40, column: 5, scope: !105) +// CHECK:STDOUT: !113 = !{!106} +// CHECK:STDOUT: !114 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !114, line: 396, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !122) +// CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !6) +// CHECK:STDOUT: !118 = !DILocation(line: 398, column: 5, scope: !115) +// CHECK:STDOUT: !119 = !{null, !6, !6} +// CHECK:STDOUT: !120 = !DISubroutineType(types: !119) +// CHECK:STDOUT: !121 = !DILocation(line: 396, column: 3, scope: !115) +// CHECK:STDOUT: !122 = !{!116} +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.63bc0bf740b17859", scope: null, file: !95, line: 33, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !130) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !6) +// CHECK:STDOUT: !128 = !DILocation(line: 34, column: 12, scope: !123) +// CHECK:STDOUT: !129 = !DILocation(line: 34, column: 5, scope: !123) +// CHECK:STDOUT: !130 = !{!124} +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.63bc0bf740b17859", scope: null, file: !95, line: 30, type: !92, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !134 = !DILocation(line: 31, column: 12, scope: !131) +// CHECK:STDOUT: !135 = !DILocation(line: 31, column: 5, scope: !131) +// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !95, line: 141, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !143) +// CHECK:STDOUT: !137 = !DILocalVariable(arg: 1, scope: !136, type: !9) +// CHECK:STDOUT: !141 = !DILocation(line: 142, column: 12, scope: !136) +// CHECK:STDOUT: !142 = !DILocation(line: 142, column: 5, scope: !136) +// CHECK:STDOUT: !143 = !{!137} +// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !95, line: 144, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !151) +// CHECK:STDOUT: !145 = !DILocalVariable(arg: 1, scope: !144, type: !9) +// CHECK:STDOUT: !149 = !DILocation(line: 145, column: 12, scope: !144) +// CHECK:STDOUT: !150 = !DILocation(line: 145, column: 5, scope: !144) +// CHECK:STDOUT: !151 = !{!145} +// CHECK:STDOUT: !152 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !114, line: 331, type: !120, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !159) +// CHECK:STDOUT: !153 = !DILocalVariable(arg: 1, scope: !152, type: !6) +// CHECK:STDOUT: !154 = !DILocalVariable(arg: 2, scope: !152, type: !6) +// CHECK:STDOUT: !155 = !DILocation(line: 0, scope: !152) +// CHECK:STDOUT: !156 = !DILocation(line: 331, column: 3, scope: !152) +// CHECK:STDOUT: !157 = !{!6, !6} +// CHECK:STDOUT: !158 = !DISubroutineType(types: !157) +// CHECK:STDOUT: !159 = !{!153, !154} +// CHECK:STDOUT: !160 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !95, line: 131, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !173) +// CHECK:STDOUT: !161 = !DILocalVariable(arg: 1, scope: !160, type: !6) +// CHECK:STDOUT: !169 = !DILocation(line: 137, column: 5, scope: !160) +// CHECK:STDOUT: !171 = !DILocation(line: 138, column: 5, scope: !160) +// CHECK:STDOUT: !172 = !DILocation(line: 139, column: 5, scope: !160) +// CHECK:STDOUT: !173 = !{!161} +// CHECK:STDOUT: !174 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.89a3e87df6fdafe1", scope: null, file: !95, line: 125, type: !92, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !181 = !DILocation(line: 128, column: 5, scope: !174) +// CHECK:STDOUT: !182 = !DILocation(line: 129, column: 5, scope: !174) +// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !114, line: 64, type: !158, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !191) +// CHECK:STDOUT: !184 = !DILocalVariable(arg: 1, scope: !183, type: !6) +// CHECK:STDOUT: !188 = !DILocation(line: 66, column: 17, scope: !183) +// CHECK:STDOUT: !190 = !DILocation(line: 66, column: 5, scope: !183) +// CHECK:STDOUT: !191 = !{!184} +// CHECK:STDOUT: !192 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !114, line: 59, type: !158, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !199) +// CHECK:STDOUT: !193 = !DILocalVariable(arg: 1, scope: !192, type: !6) +// CHECK:STDOUT: !198 = !DILocation(line: 59, column: 28, scope: !192) +// CHECK:STDOUT: !199 = !{!193} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/form.carbon b/toolchain/lower/testdata/function/call/form.carbon index 5376e7f975cc..96d7c9ebbd82 100644 --- a/toolchain/lower/testdata/function/call/form.carbon +++ b/toolchain/lower/testdata/function/call/form.carbon @@ -78,12 +78,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !26 // CHECK:STDOUT: store i32 0, ptr %y.var, align 4, !dbg !26 // CHECK:STDOUT: call void @_CF.Main(ptr %y.var), !dbg !30 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %y.var), !dbg !26 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %y.var), !dbg !26 // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } @@ -110,7 +110,7 @@ fn G() { // CHECK:STDOUT: !26 = !DILocation(line: 6, column: 3, scope: !25) // CHECK:STDOUT: !30 = !DILocation(line: 7, column: 3, scope: !25) // CHECK:STDOUT: !31 = !DILocation(line: 5, column: 1, scope: !25) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !20) // CHECK:STDOUT: !34 = !DILocation(line: 6, column: 3, scope: !32) // CHECK:STDOUT: !35 = !{!33} @@ -128,12 +128,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !39 // CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !39 // CHECK:STDOUT: call void @_CF.Main(ptr %x.var), !dbg !40 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !39 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %x.var), !dbg !39 // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -160,7 +160,7 @@ fn G() { // CHECK:STDOUT: !39 = !DILocation(line: 3, column: 6, scope: !38) // CHECK:STDOUT: !40 = !DILocation(line: 6, column: 3, scope: !38) // CHECK:STDOUT: !41 = !DILocation(line: 5, column: 1, scope: !38) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !36, line: 3, type: !22, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !45) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !36, line: 3, type: !22, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !45) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !20) // CHECK:STDOUT: !44 = !DILocation(line: 3, column: 6, scope: !42) // CHECK:STDOUT: !45 = !{!43} @@ -234,12 +234,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !66 // CHECK:STDOUT: %F.call = call i32 @_CF.Main(), !dbg !67 // CHECK:STDOUT: store i32 %F.call, ptr %x.var, align 4, !dbg !66 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !66 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %x.var), !dbg !66 // CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !71 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } @@ -266,7 +266,7 @@ fn G() { // CHECK:STDOUT: !66 = !DILocation(line: 6, column: 14, scope: !65) // CHECK:STDOUT: !67 = !DILocation(line: 6, column: 27, scope: !65) // CHECK:STDOUT: !70 = !DILocation(line: 5, column: 1, scope: !65) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !61, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !62, retainedNodes: !74) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !61, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !62, retainedNodes: !74) // CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !20) // CHECK:STDOUT: !73 = !DILocation(line: 6, column: 14, scope: !71) // CHECK:STDOUT: !74 = !{!72} diff --git a/toolchain/lower/testdata/function/call/i32.carbon b/toolchain/lower/testdata/function/call/i32.carbon index 5c78c60aea03..39c3951f998a 100644 --- a/toolchain/lower/testdata/function/call/i32.carbon +++ b/toolchain/lower/testdata/function/call/i32.carbon @@ -35,12 +35,12 @@ fn Main() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !36 // CHECK:STDOUT: %Echo.call = call i32 @_CEcho.Main(i32 1), !dbg !37 // CHECK:STDOUT: store i32 %Echo.call, ptr %_.var, align 4, !dbg !36 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !36 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var), !dbg !36 // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } @@ -73,7 +73,7 @@ fn Main() { // CHECK:STDOUT: !36 = !DILocation(line: 18, column: 3, scope: !35) // CHECK:STDOUT: !37 = !DILocation(line: 18, column: 16, scope: !35) // CHECK:STDOUT: !39 = !DILocation(line: 17, column: 1, scope: !35) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !26, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 18, type: !26, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) // CHECK:STDOUT: !42 = !DILocation(line: 18, column: 3, scope: !40) // CHECK:STDOUT: !43 = !{!41} diff --git a/toolchain/lower/testdata/function/call/ref_param.carbon b/toolchain/lower/testdata/function/call/ref_param.carbon index 3b96a91294ff..c09c7a41ab17 100644 --- a/toolchain/lower/testdata/function/call/ref_param.carbon +++ b/toolchain/lower/testdata/function/call/ref_param.carbon @@ -34,12 +34,12 @@ fn Main() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !31 // CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !31 // CHECK:STDOUT: call void @_CDoNothing.Main(ptr %a.var), !dbg !35 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %a.var), !dbg !31 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } @@ -70,7 +70,7 @@ fn Main() { // CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !30) // CHECK:STDOUT: !35 = !DILocation(line: 17, column: 3, scope: !30) // CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) // CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} diff --git a/toolchain/lower/testdata/function/call/ref_return.carbon b/toolchain/lower/testdata/function/call/ref_return.carbon index 0df657b46e7f..a9102d18f667 100644 --- a/toolchain/lower/testdata/function/call/ref_return.carbon +++ b/toolchain/lower/testdata/function/call/ref_return.carbon @@ -37,12 +37,12 @@ fn Main() { // CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !37 // CHECK:STDOUT: %Echo.call = call ptr @_CEcho.Main(ptr %a.var), !dbg !41 // CHECK:STDOUT: store i32 1, ptr %Echo.call, align 4, !dbg !41 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !37 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %a.var), !dbg !37 // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } @@ -76,7 +76,7 @@ fn Main() { // CHECK:STDOUT: !37 = !DILocation(line: 18, column: 3, scope: !36) // CHECK:STDOUT: !41 = !DILocation(line: 19, column: 3, scope: !36) // CHECK:STDOUT: !42 = !DILocation(line: 17, column: 1, scope: !36) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !46) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !46) // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !20) // CHECK:STDOUT: !45 = !DILocation(line: 18, column: 3, scope: !43) // CHECK:STDOUT: !46 = !{!44} diff --git a/toolchain/lower/testdata/function/call/tuple_param_with_return_slot.carbon b/toolchain/lower/testdata/function/call/tuple_param_with_return_slot.carbon index d019c21ddd70..00790a5d7547 100644 --- a/toolchain/lower/testdata/function/call/tuple_param_with_return_slot.carbon +++ b/toolchain/lower/testdata/function/call/tuple_param_with_return_slot.carbon @@ -47,18 +47,18 @@ fn Main() { // CHECK:STDOUT: %.loc18_21.1.temp = alloca { i32, i32, i32 }, align 4, !dbg !45 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_21.1.temp), !dbg !45 // CHECK:STDOUT: call void @_CF.Main(ptr %.loc18_21.1.temp, { i32 } { i32 1 }, ptr @tuple.97c.loc18_20.6), !dbg !45 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %.loc18_21.1.temp), !dbg !45 +// CHECK:STDOUT: call void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %.loc18_21.1.temp), !dbg !45 // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } @@ -98,11 +98,11 @@ fn Main() { // CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 17, type: !25, spFlags: DISPFlagDefinition, unit: !19) // CHECK:STDOUT: !45 = !DILocation(line: 18, column: 3, scope: !44) // CHECK:STDOUT: !46 = !DILocation(line: 17, column: 1, scope: !44) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !50) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !50) // CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !20) // CHECK:STDOUT: !49 = !DILocation(line: 18, column: 3, scope: !47) // CHECK:STDOUT: !50 = !{!48} -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 18, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !18, line: 18, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !21) // CHECK:STDOUT: !53 = !DILocation(line: 18, column: 3, scope: !51) // CHECK:STDOUT: !54 = !{!52} diff --git a/toolchain/lower/testdata/function/call/var_param.carbon b/toolchain/lower/testdata/function/call/var_param.carbon index 514d2a655f2a..651399b1aa32 100644 --- a/toolchain/lower/testdata/function/call/var_param.carbon +++ b/toolchain/lower/testdata/function/call/var_param.carbon @@ -35,12 +35,12 @@ fn Main() { // CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !31 // CHECK:STDOUT: %.loc17 = load i32, ptr %a.var, align 4, !dbg !33 // CHECK:STDOUT: call void @_CDoNothing.Main(i32 %.loc17), !dbg !34 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %a.var), !dbg !31 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !36 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } @@ -72,7 +72,7 @@ fn Main() { // CHECK:STDOUT: !33 = !DILocation(line: 17, column: 13, scope: !30) // CHECK:STDOUT: !34 = !DILocation(line: 17, column: 3, scope: !30) // CHECK:STDOUT: !35 = !DILocation(line: 15, column: 1, scope: !30) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !20) // CHECK:STDOUT: !38 = !DILocation(line: 16, column: 3, scope: !36) // CHECK:STDOUT: !39 = !{!37} diff --git a/toolchain/lower/testdata/function/definition/destroy.carbon b/toolchain/lower/testdata/function/definition/destroy.carbon index 5c37e343e1f5..6b22021f06a2 100644 --- a/toolchain/lower/testdata/function/definition/destroy.carbon +++ b/toolchain/lower/testdata/function/definition/destroy.carbon @@ -89,13 +89,13 @@ fn InitLet() { // CHECK:STDOUT: %.loc12_6.2.temp = alloca {}, align 1, !dbg !27 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_6.2.temp), !dbg !27 // CHECK:STDOUT: call void @_CF.Main(ptr @C.val.loc12_6.6), !dbg !28 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !27 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr @C.val), !dbg !27 // CHECK:STDOUT: call void @_CG.Main(), !dbg !29 // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -127,7 +127,7 @@ fn InitLet() { // CHECK:STDOUT: !28 = !DILocation(line: 12, column: 3, scope: !26) // CHECK:STDOUT: !29 = !DILocation(line: 13, column: 3, scope: !26) // CHECK:STDOUT: !30 = !DILocation(line: 11, column: 1, scope: !26) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !14, line: 12, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !34) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !14, line: 12, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !34) // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !16) // CHECK:STDOUT: !33 = !DILocation(line: 12, column: 5, scope: !31) // CHECK:STDOUT: !34 = !{!32} @@ -153,13 +153,13 @@ fn InitLet() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !44 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var, ptr align 1 @C.val.loc6, i64 0, i1 false), !dbg !44 // CHECK:STDOUT: call void @_CF.Main(ptr %_.var), !dbg !45 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !44 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %_.var), !dbg !44 // CHECK:STDOUT: call void @_CG.Main(), !dbg !46 // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !48 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } @@ -194,7 +194,7 @@ fn InitLet() { // CHECK:STDOUT: !45 = !DILocation(line: 12, column: 3, scope: !43) // CHECK:STDOUT: !46 = !DILocation(line: 13, column: 3, scope: !43) // CHECK:STDOUT: !47 = !DILocation(line: 11, column: 1, scope: !43) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !35, line: 6, type: !18, spFlags: DISPFlagDefinition, unit: !36, retainedNodes: !51) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !35, line: 6, type: !18, spFlags: DISPFlagDefinition, unit: !36, retainedNodes: !51) // CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !16) // CHECK:STDOUT: !50 = !DILocation(line: 6, column: 6, scope: !48) // CHECK:STDOUT: !51 = !{!49} @@ -228,12 +228,12 @@ fn InitLet() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !66 // CHECK:STDOUT: call void @_CF.Main(ptr %_.var), !dbg !67 // CHECK:STDOUT: call void @_CG.Main(), !dbg !69 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !66 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %_.var), !dbg !66 // CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !71 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } @@ -245,7 +245,7 @@ fn InitLet() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_16.1.temp), !dbg !76 // CHECK:STDOUT: call void @_CF.Main(ptr %.loc22_16.1.temp), !dbg !76 // CHECK:STDOUT: call void @_CG.Main(), !dbg !79 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc22_16.1.temp), !dbg !76 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %.loc22_16.1.temp), !dbg !76 // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -285,7 +285,7 @@ fn InitLet() { // CHECK:STDOUT: !67 = !DILocation(line: 17, column: 14, scope: !65) // CHECK:STDOUT: !69 = !DILocation(line: 18, column: 3, scope: !65) // CHECK:STDOUT: !70 = !DILocation(line: 16, column: 1, scope: !65) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !52, line: 17, type: !18, spFlags: DISPFlagDefinition, unit: !53, retainedNodes: !74) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !52, line: 17, type: !18, spFlags: DISPFlagDefinition, unit: !53, retainedNodes: !74) // CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !16) // CHECK:STDOUT: !73 = !DILocation(line: 17, column: 3, scope: !71) // CHECK:STDOUT: !74 = !{!72} diff --git a/toolchain/lower/testdata/function/definition/var_param.carbon b/toolchain/lower/testdata/function/definition/var_param.carbon index 41b080bc6b0a..76bbd5aad6b6 100644 --- a/toolchain/lower/testdata/function/definition/var_param.carbon +++ b/toolchain/lower/testdata/function/definition/var_param.carbon @@ -80,39 +80,39 @@ fn Call() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !68 // CHECK:STDOUT: store i32 1, ptr %_.var.loc15, align 4, !dbg !68 // CHECK:STDOUT: call void @_COneVar_i32.Main(ptr %_.var.loc15), !dbg !69 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc15), !dbg !68 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var.loc15), !dbg !68 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !70 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc16, ptr align 1 @X.val.loc16, i64 0, i1 false), !dbg !70 // CHECK:STDOUT: call void @_COneVar_X.Main(ptr %_.var.loc16), !dbg !71 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var.loc16), !dbg !70 +// CHECK:STDOUT: call void @"_COp.8b0bf151036f045a:core.Destroy.Core"(ptr %_.var.loc16), !dbg !70 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18_12), !dbg !72 // CHECK:STDOUT: store i32 1, ptr %_.var.loc18_12, align 4, !dbg !72 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18_24), !dbg !73 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc18_24, ptr align 1 @X.val.loc16, i64 0, i1 false), !dbg !73 // CHECK:STDOUT: call void @_CTwoVars.Main(ptr %_.var.loc18_12, ptr %_.var.loc18_24), !dbg !74 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var.loc18_24), !dbg !73 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc18_12), !dbg !72 +// CHECK:STDOUT: call void @"_COp.8b0bf151036f045a:core.Destroy.Core"(ptr %_.var.loc18_24), !dbg !73 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var.loc18_12), !dbg !72 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc20), !dbg !75 // CHECK:STDOUT: store i32 1, ptr %_.var.loc20, align 4, !dbg !75 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_18.2.temp), !dbg !76 // CHECK:STDOUT: call void @_CVarThenLet.Main(ptr %_.var.loc20, ptr @X.val.loc16), !dbg !77 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr @X.val), !dbg !76 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc20), !dbg !75 +// CHECK:STDOUT: call void @"_COp.8b0bf151036f045a:core.Destroy.Core"(ptr @X.val), !dbg !76 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var.loc20), !dbg !75 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc21), !dbg !78 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc21, ptr align 1 @X.val.loc16, i64 0, i1 false), !dbg !78 // CHECK:STDOUT: call void @_CLetThenVar.Main(i32 1, ptr %_.var.loc21), !dbg !79 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var.loc21), !dbg !78 +// CHECK:STDOUT: call void @"_COp.8b0bf151036f045a:core.Destroy.Core"(ptr %_.var.loc21), !dbg !78 // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !81 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %self) #0 !dbg !85 { +// CHECK:STDOUT: define weak_odr void @"_COp.8b0bf151036f045a:core.Destroy.Core"(ptr %self) #0 !dbg !85 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } @@ -124,8 +124,8 @@ fn Call() { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.70db2d92ffddbef7:core.Destroy.Core", { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.617e09fd62745f5d:core.Destroy.Core", { 3, 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f58524831c37807e:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.8b0bf151036f045a:core.Destroy.Core", { 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 6, 5, 4, 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 2, 1, 0 } // CHECK:STDOUT: @@ -186,11 +186,11 @@ fn Call() { // CHECK:STDOUT: !78 = !DILocation(line: 21, column: 23, scope: !67) // CHECK:STDOUT: !79 = !DILocation(line: 30, column: 3, scope: !67) // CHECK:STDOUT: !80 = !DILocation(line: 23, column: 1, scope: !67) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !84) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !84) // CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !20) // CHECK:STDOUT: !83 = !DILocation(line: 15, column: 15, scope: !81) // CHECK:STDOUT: !84 = !{!82} -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.617e09fd62745f5d:core.Destroy.Core", scope: null, file: !18, line: 16, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !88) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8b0bf151036f045a:core.Destroy.Core", scope: null, file: !18, line: 16, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !88) // CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !23) // CHECK:STDOUT: !87 = !DILocation(line: 16, column: 13, scope: !85) // CHECK:STDOUT: !88 = !{!86} diff --git a/toolchain/lower/testdata/function/generic/call.carbon b/toolchain/lower/testdata/function/generic/call.carbon index 7f6bea9c9440..70808f11534a 100644 --- a/toolchain/lower/testdata/function/generic/call.carbon +++ b/toolchain/lower/testdata/function/generic/call.carbon @@ -60,33 +60,33 @@ fn G() { // CHECK:STDOUT: %.loc28 = load double, ptr %m.var, align 8, !dbg !57 // CHECK:STDOUT: call void @_CF.Main.073fbce68be6103e(double %.loc28), !dbg !58 // CHECK:STDOUT: call void @_CF.Main.5754c7a55c7cbe4a(%type.26 zeroinitializer), !dbg !59 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !49 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !47 -// CHECK:STDOUT: call void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr %d.var), !dbg !45 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !43 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %m.var), !dbg !49 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !47 +// CHECK:STDOUT: call void @"_COp.a50fd899f969e609:core.Destroy.Core"(ptr %d.var), !dbg !45 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !43 // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr %self) #0 !dbg !69 { +// CHECK:STDOUT: define weak_odr void @"_COp.a50fd899f969e609:core.Destroy.Core"(ptr %self) #0 !dbg !69 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !73 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !73 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } @@ -157,19 +157,19 @@ fn G() { // CHECK:STDOUT: !58 = !DILocation(line: 28, column: 3, scope: !42) // CHECK:STDOUT: !59 = !DILocation(line: 29, column: 3, scope: !42) // CHECK:STDOUT: !60 = !DILocation(line: 19, column: 1, scope: !42) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 23, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !64) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !32, line: 23, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !64) // CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !37) // CHECK:STDOUT: !63 = !DILocation(line: 23, column: 3, scope: !61) // CHECK:STDOUT: !64 = !{!62} -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 22, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !68) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !32, line: 22, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !68) // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !34) // CHECK:STDOUT: !67 = !DILocation(line: 22, column: 3, scope: !65) // CHECK:STDOUT: !68 = !{!66} -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.86bfabb7802f32e5:core.Destroy.Core", scope: null, file: !32, line: 21, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !72) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a50fd899f969e609:core.Destroy.Core", scope: null, file: !32, line: 21, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !72) // CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !37) // CHECK:STDOUT: !71 = !DILocation(line: 21, column: 3, scope: !69) // CHECK:STDOUT: !72 = !{!70} -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !32, line: 20, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !76) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !32, line: 20, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !76) // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !37) // CHECK:STDOUT: !75 = !DILocation(line: 20, column: 3, scope: !73) // CHECK:STDOUT: !76 = !{!74} diff --git a/toolchain/lower/testdata/function/generic/call_basic.carbon b/toolchain/lower/testdata/function/generic/call_basic.carbon index 49c9b640e8f2..8680ab9fc257 100644 --- a/toolchain/lower/testdata/function/generic/call_basic.carbon +++ b/toolchain/lower/testdata/function/generic/call_basic.carbon @@ -71,13 +71,13 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } @@ -94,18 +94,18 @@ fn M() { // CHECK:STDOUT: %.loc52 = load i32, ptr %n.var, align 4, !dbg !64 // CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc52), !dbg !65 // CHECK:STDOUT: %.loc53_18 = load i32, ptr %n.var, align 4, !dbg !66 -// CHECK:STDOUT: %G.call.loc53 = call i32 @_CG.Main.553a1f59d1dd8381(i32 %.loc53_18), !dbg !67 +// CHECK:STDOUT: %G.call.loc53 = call i32 @_CG.Main.89a3e87df6fdafe1(i32 %.loc53_18), !dbg !67 // CHECK:STDOUT: %.loc54 = load double, ptr %p.var, align 8, !dbg !72 // CHECK:STDOUT: call void @_CF.Main.073fbce68be6103e(double %.loc54), !dbg !73 // CHECK:STDOUT: %.loc55_18 = load double, ptr %p.var, align 8, !dbg !74 -// CHECK:STDOUT: %G.call.loc55 = call double @_CG.Main.2c62211f0854a75a(double %.loc55_18), !dbg !75 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %p.var), !dbg !62 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !60 +// CHECK:STDOUT: %G.call.loc55 = call double @_CG.Main.38241ddc2cd9d74d(double %.loc55_18), !dbg !75 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %p.var), !dbg !62 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !60 // CHECK:STDOUT: ret void, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !79 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } @@ -123,7 +123,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.553a1f59d1dd8381(i32 %x) #0 !dbg !88 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.89a3e87df6fdafe1(i32 %x) #0 !dbg !88 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc29_6.3.temp = alloca i32, align 4, !dbg !94 // CHECK:STDOUT: %.loc31_8.3.temp = alloca i32, align 4, !dbg !97 @@ -137,17 +137,17 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_6.3.temp), !dbg !94 // CHECK:STDOUT: %H.call.loc29 = call i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x), !dbg !94 // CHECK:STDOUT: store i32 %H.call.loc29, ptr %.loc29_6.3.temp, align 4, !dbg !94 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc29_6.3.temp), !dbg !94 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %.loc29_6.3.temp), !dbg !94 // CHECK:STDOUT: %H.call.loc30 = call %type.26 @_CH.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !95 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.3.temp), !dbg !97 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.553a1f59d1dd8381(i32 %x), !dbg !97 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.89a3e87df6fdafe1(i32 %x), !dbg !97 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.3.temp), !dbg !98 // CHECK:STDOUT: store i32 %G.call, ptr %.loc31_8.3.temp, align 4, !dbg !97 // CHECK:STDOUT: %.loc31_8.5 = load i32, ptr %.loc31_8.3.temp, align 4, !dbg !97 // CHECK:STDOUT: %H.call.loc31 = call i32 @_CH.Main.4d6ceefeb7f772f4(i32 %.loc31_8.5), !dbg !98 // CHECK:STDOUT: store i32 %H.call.loc31, ptr %.loc31_9.3.temp, align 4, !dbg !98 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc31_9.3.temp), !dbg !98 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc31_8.3.temp), !dbg !97 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %.loc31_9.3.temp), !dbg !98 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %.loc31_8.3.temp), !dbg !97 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !99 // CHECK:STDOUT: store double poison, ptr %var_f64.var, align 8, !dbg !99 // CHECK:STDOUT: %.loc35_5 = load double, ptr %var_f64.var, align 8, !dbg !101 @@ -167,9 +167,9 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !115 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc43_6.3.temp), !dbg !118 // CHECK:STDOUT: call void @_CH.Main.42513763e01cba2c(ptr %.loc43_6.3.temp, ptr %c.var), !dbg !118 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc43_6.3.temp), !dbg !118 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !115 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %var_f64.var), !dbg !99 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %.loc43_6.3.temp), !dbg !118 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !115 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %var_f64.var), !dbg !99 // CHECK:STDOUT: ret i32 %x, !dbg !120 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -180,7 +180,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.2c62211f0854a75a(double %x) #0 !dbg !127 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.38241ddc2cd9d74d(double %x) #0 !dbg !127 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc29_6.3.temp = alloca double, align 8, !dbg !133 // CHECK:STDOUT: %.loc31_8.3.temp = alloca double, align 8, !dbg !136 @@ -194,17 +194,17 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_6.3.temp), !dbg !133 // CHECK:STDOUT: %H.call.loc29 = call double @_CH.Main.c5e4ba542a56b71f(double %x), !dbg !133 // CHECK:STDOUT: store double %H.call.loc29, ptr %.loc29_6.3.temp, align 8, !dbg !133 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc29_6.3.temp), !dbg !133 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %.loc29_6.3.temp), !dbg !133 // CHECK:STDOUT: %H.call.loc30 = call %type.26 @_CH.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !134 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.3.temp), !dbg !136 -// CHECK:STDOUT: %G.call = call double @_CG.Main.2c62211f0854a75a(double %x), !dbg !136 +// CHECK:STDOUT: %G.call = call double @_CG.Main.38241ddc2cd9d74d(double %x), !dbg !136 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.3.temp), !dbg !137 // CHECK:STDOUT: store double %G.call, ptr %.loc31_8.3.temp, align 8, !dbg !136 // CHECK:STDOUT: %.loc31_8.5 = load double, ptr %.loc31_8.3.temp, align 8, !dbg !136 // CHECK:STDOUT: %H.call.loc31 = call double @_CH.Main.c5e4ba542a56b71f(double %.loc31_8.5), !dbg !137 // CHECK:STDOUT: store double %H.call.loc31, ptr %.loc31_9.3.temp, align 8, !dbg !137 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc31_9.3.temp), !dbg !137 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc31_8.3.temp), !dbg !136 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %.loc31_9.3.temp), !dbg !137 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %.loc31_8.3.temp), !dbg !136 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !138 // CHECK:STDOUT: store double poison, ptr %var_f64.var, align 8, !dbg !138 // CHECK:STDOUT: %.loc35_5 = load double, ptr %var_f64.var, align 8, !dbg !140 @@ -224,9 +224,9 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !154 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc43_6.3.temp), !dbg !157 // CHECK:STDOUT: call void @_CH.Main.42513763e01cba2c(ptr %.loc43_6.3.temp, ptr %c.var), !dbg !157 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc43_6.3.temp), !dbg !157 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !154 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %var_f64.var), !dbg !138 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %.loc43_6.3.temp), !dbg !157 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !154 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %var_f64.var), !dbg !138 // CHECK:STDOUT: ret double %x, !dbg !159 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -293,11 +293,11 @@ fn M() { // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !35) // CHECK:STDOUT: !49 = !DILocation(line: 15, column: 34, scope: !44) // CHECK:STDOUT: !50 = !{!45} -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !32, line: 43, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !54) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !32, line: 43, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !54) // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !35) // CHECK:STDOUT: !53 = !DILocation(line: 43, column: 3, scope: !51) // CHECK:STDOUT: !54 = !{!52} -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 34, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !58) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !32, line: 34, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !58) // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !35) // CHECK:STDOUT: !57 = !DILocation(line: 34, column: 3, scope: !55) // CHECK:STDOUT: !58 = !{!56} @@ -315,7 +315,7 @@ fn M() { // CHECK:STDOUT: !74 = !DILocation(line: 55, column: 18, scope: !59) // CHECK:STDOUT: !75 = !DILocation(line: 55, column: 16, scope: !59) // CHECK:STDOUT: !78 = !DILocation(line: 48, column: 1, scope: !59) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 53, type: !43, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !82) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !32, line: 53, type: !43, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !82) // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !34) // CHECK:STDOUT: !81 = !DILocation(line: 53, column: 16, scope: !79) // CHECK:STDOUT: !82 = !{!80} @@ -323,7 +323,7 @@ fn M() { // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !34) // CHECK:STDOUT: !86 = !DILocation(line: 19, column: 1, scope: !83) // CHECK:STDOUT: !87 = !{!84} -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.553a1f59d1dd8381", scope: null, file: !32, line: 28, type: !69, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !121) +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.89a3e87df6fdafe1", scope: null, file: !32, line: 28, type: !69, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !121) // CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !88, type: !34) // CHECK:STDOUT: !94 = !DILocation(line: 29, column: 3, scope: !88) // CHECK:STDOUT: !95 = !DILocation(line: 30, column: 3, scope: !88) @@ -349,7 +349,7 @@ fn M() { // CHECK:STDOUT: !123 = !DILocalVariable(arg: 1, scope: !122, type: !35) // CHECK:STDOUT: !125 = !DILocation(line: 19, column: 1, scope: !122) // CHECK:STDOUT: !126 = !{!123} -// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2c62211f0854a75a", scope: null, file: !32, line: 28, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !160) +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.38241ddc2cd9d74d", scope: null, file: !32, line: 28, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !160) // CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !35) // CHECK:STDOUT: !133 = !DILocation(line: 29, column: 3, scope: !127) // CHECK:STDOUT: !134 = !DILocation(line: 30, column: 3, scope: !127) diff --git a/toolchain/lower/testdata/function/generic/call_basic_depth.carbon b/toolchain/lower/testdata/function/generic/call_basic_depth.carbon index 958118056657..d20ae314caeb 100644 --- a/toolchain/lower/testdata/function/generic/call_basic_depth.carbon +++ b/toolchain/lower/testdata/function/generic/call_basic_depth.carbon @@ -52,16 +52,16 @@ fn M() -> i32 { // CHECK:STDOUT: %.loc34 = load i32, ptr %n.var, align 4, !dbg !32 // CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc34), !dbg !33 // CHECK:STDOUT: %.loc35_9 = load i32, ptr %n.var, align 4, !dbg !35 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.553a1f59d1dd8381(i32 %.loc35_9), !dbg !36 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.89a3e87df6fdafe1(i32 %.loc35_9), !dbg !36 // CHECK:STDOUT: store i32 %G.call, ptr %m.var, align 4, !dbg !34 // CHECK:STDOUT: %.loc36 = load i32, ptr %m.var, align 4, !dbg !39 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %m.var), !dbg !30 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !28 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %m.var), !dbg !30 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !28 // CHECK:STDOUT: ret i32 %.loc36, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } @@ -76,13 +76,13 @@ fn M() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.553a1f59d1dd8381(i32 %x) #0 !dbg !50 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.89a3e87df6fdafe1(i32 %x) #0 !dbg !50 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc25_6.3.temp = alloca i32, align 4, !dbg !56 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_6.3.temp), !dbg !56 // CHECK:STDOUT: %H.call = call i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x), !dbg !56 // CHECK:STDOUT: store i32 %H.call, ptr %.loc25_6.3.temp, align 4, !dbg !56 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc25_6.3.temp), !dbg !56 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %.loc25_6.3.temp), !dbg !56 // CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %x), !dbg !58 // CHECK:STDOUT: ret i32 %x, !dbg !60 // CHECK:STDOUT: } @@ -95,7 +95,7 @@ fn M() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.70db2d92ffddbef7:core.Destroy.Core", { 0, 2, 1 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f58524831c37807e:core.Destroy.Core", { 0, 2, 1 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -125,7 +125,7 @@ fn M() -> i32 { // CHECK:STDOUT: !38 = !DISubroutineType(types: !37) // CHECK:STDOUT: !39 = !DILocation(line: 36, column: 10, scope: !25) // CHECK:STDOUT: !40 = !DILocation(line: 36, column: 3, scope: !25) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 35, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 35, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !20) // CHECK:STDOUT: !43 = !DILocation(line: 35, column: 7, scope: !41) // CHECK:STDOUT: !44 = !{!42} @@ -133,7 +133,7 @@ fn M() -> i32 { // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !20) // CHECK:STDOUT: !48 = !DILocation(line: 16, column: 1, scope: !45) // CHECK:STDOUT: !49 = !{!46} -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.553a1f59d1dd8381", scope: null, file: !18, line: 24, type: !38, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !61) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.89a3e87df6fdafe1", scope: null, file: !18, line: 24, type: !38, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !61) // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !20) // CHECK:STDOUT: !56 = !DILocation(line: 25, column: 3, scope: !50) // CHECK:STDOUT: !58 = !DILocation(line: 26, column: 3, scope: !50) diff --git a/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon b/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon index a81a780ca9ba..ff87caf2230c 100644 --- a/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon +++ b/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon @@ -56,20 +56,20 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !45 // CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !45 // CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !47 -// CHECK:STDOUT: call void @_CF.Main.553a1f59d1dd8381(ptr %.loc39_5), !dbg !48 +// CHECK:STDOUT: call void @_CF.Main.89a3e87df6fdafe1(ptr %.loc39_5), !dbg !48 // CHECK:STDOUT: %.loc40_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !49 -// CHECK:STDOUT: call void @_CF.Main.2c62211f0854a75a(ptr %.loc40_5), !dbg !50 +// CHECK:STDOUT: call void @_CF.Main.38241ddc2cd9d74d(ptr %.loc40_5), !dbg !50 // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !52 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !56 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !56 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } @@ -78,18 +78,18 @@ fn M() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !60 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.89a3e87df6fdafe1(ptr %x) #0 !dbg !60 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %A.call = call %type.26 @_CA.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !63 -// CHECK:STDOUT: call void @_CB.Main.553a1f59d1dd8381(ptr %x), !dbg !67 +// CHECK:STDOUT: call void @_CB.Main.89a3e87df6fdafe1(ptr %x), !dbg !67 // CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2c62211f0854a75a(ptr %x) #0 !dbg !70 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.38241ddc2cd9d74d(ptr %x) #0 !dbg !70 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %A.call = call %type.26 @_CA.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !73 -// CHECK:STDOUT: call void @_CB.Main.2c62211f0854a75a(ptr %x), !dbg !75 +// CHECK:STDOUT: call void @_CB.Main.38241ddc2cd9d74d(ptr %x), !dbg !75 // CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -100,26 +100,26 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !86 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.89a3e87df6fdafe1(ptr %x) #0 !dbg !86 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc27_7.3.temp = alloca i32, align 4, !dbg !91 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.3.temp), !dbg !91 // CHECK:STDOUT: %.loc27_5.2 = load i32, ptr %x, align 4, !dbg !90 // CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %.loc27_5.2), !dbg !91 // CHECK:STDOUT: store i32 %D.call, ptr %.loc27_7.3.temp, align 4, !dbg !91 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc27_7.3.temp), !dbg !91 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %.loc27_7.3.temp), !dbg !91 // CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.2c62211f0854a75a(ptr %x) #0 !dbg !96 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.38241ddc2cd9d74d(ptr %x) #0 !dbg !96 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc27_7.3.temp = alloca double, align 8, !dbg !101 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.3.temp), !dbg !101 // CHECK:STDOUT: %.loc27_5.2 = load double, ptr %x, align 8, !dbg !100 // CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %.loc27_5.2), !dbg !101 // CHECK:STDOUT: store double %D.call, ptr %.loc27_7.3.temp, align 8, !dbg !101 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc27_7.3.temp), !dbg !101 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %.loc27_7.3.temp), !dbg !101 // CHECK:STDOUT: ret void, !dbg !102 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -165,15 +165,15 @@ fn M() { // CHECK:STDOUT: !49 = !DILocation(line: 40, column: 5, scope: !42) // CHECK:STDOUT: !50 = !DILocation(line: 40, column: 3, scope: !42) // CHECK:STDOUT: !51 = !DILocation(line: 35, column: 1, scope: !42) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 39, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !55) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !32, line: 39, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !55) // CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !34) // CHECK:STDOUT: !54 = !DILocation(line: 39, column: 3, scope: !52) // CHECK:STDOUT: !55 = !{!53} -// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 40, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !59) +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !32, line: 40, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !59) // CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !39) // CHECK:STDOUT: !58 = !DILocation(line: 40, column: 3, scope: !56) // CHECK:STDOUT: !59 = !{!57} -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.553a1f59d1dd8381", scope: null, file: !32, line: 30, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !69) +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.89a3e87df6fdafe1", scope: null, file: !32, line: 30, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !69) // CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !39) // CHECK:STDOUT: !63 = !DILocation(line: 31, column: 3, scope: !60) // CHECK:STDOUT: !64 = !{!39, !39} @@ -181,7 +181,7 @@ fn M() { // CHECK:STDOUT: !67 = !DILocation(line: 32, column: 3, scope: !60) // CHECK:STDOUT: !68 = !DILocation(line: 30, column: 1, scope: !60) // CHECK:STDOUT: !69 = !{!61} -// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2c62211f0854a75a", scope: null, file: !32, line: 30, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !77) +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.38241ddc2cd9d74d", scope: null, file: !32, line: 30, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !77) // CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !70, type: !39) // CHECK:STDOUT: !73 = !DILocation(line: 31, column: 3, scope: !70) // CHECK:STDOUT: !75 = !DILocation(line: 32, column: 3, scope: !70) @@ -191,7 +191,7 @@ fn M() { // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !39) // CHECK:STDOUT: !84 = !DILocation(line: 19, column: 3, scope: !78) // CHECK:STDOUT: !85 = !{!79} -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.553a1f59d1dd8381", scope: null, file: !32, line: 26, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !95) +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.89a3e87df6fdafe1", scope: null, file: !32, line: 26, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !95) // CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !39) // CHECK:STDOUT: !90 = !DILocation(line: 27, column: 5, scope: !86) // CHECK:STDOUT: !91 = !DILocation(line: 27, column: 3, scope: !86) @@ -199,7 +199,7 @@ fn M() { // CHECK:STDOUT: !93 = !DISubroutineType(types: !92) // CHECK:STDOUT: !94 = !DILocation(line: 26, column: 1, scope: !86) // CHECK:STDOUT: !95 = !{!87} -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.2c62211f0854a75a", scope: null, file: !32, line: 26, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !103) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.38241ddc2cd9d74d", scope: null, file: !32, line: 26, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !103) // CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !39) // CHECK:STDOUT: !100 = !DILocation(line: 27, column: 5, scope: !96) // CHECK:STDOUT: !101 = !DILocation(line: 27, column: 3, scope: !96) diff --git a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon index 766a93573fca..5623a3e00855 100644 --- a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon @@ -57,7 +57,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } @@ -100,7 +100,7 @@ fn Run() { // CHECK:STDOUT: %I.WithSelf.F.call = call i32 @"_CF.Y.Main:I.Main"(), !dbg !40 // CHECK:STDOUT: store i32 %I.WithSelf.F.call, ptr %.loc38_20.1.temp, align 4, !dbg !40 // CHECK:STDOUT: %.loc38_20.3 = load i32, ptr %.loc38_20.1.temp, align 4, !dbg !40 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc38_20.1.temp), !dbg !40 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %.loc38_20.1.temp), !dbg !40 // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -132,7 +132,7 @@ fn Run() { // CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !4, line: 22, type: !9, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !17 = !DILocation(line: 23, column: 5, scope: !14) // CHECK:STDOUT: !18 = !DILocation(line: 24, column: 5, scope: !14) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 28, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 28, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !6) // CHECK:STDOUT: !21 = !DILocation(line: 28, column: 24, scope: !19) // CHECK:STDOUT: !22 = !{!20} diff --git a/toolchain/lower/testdata/function/generic/call_different_specific.carbon b/toolchain/lower/testdata/function/generic/call_different_specific.carbon index 941d9161bfe0..ec1dc3d2f032 100644 --- a/toolchain/lower/testdata/function/generic/call_different_specific.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_specific.carbon @@ -53,36 +53,36 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CM.Main(ptr %ptr_i32, ptr %ptr_f64) #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.553a1f59d1dd8381(ptr %ptr_i32), !dbg !20 -// CHECK:STDOUT: call void @_CF.Main.2c62211f0854a75a(ptr %ptr_f64), !dbg !22 +// CHECK:STDOUT: call void @_CF.Main.89a3e87df6fdafe1(ptr %ptr_i32), !dbg !20 +// CHECK:STDOUT: call void @_CF.Main.38241ddc2cd9d74d(ptr %ptr_f64), !dbg !22 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !33 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.89a3e87df6fdafe1(ptr %x) #0 !dbg !33 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %A.call = call %type.0 @_CA.Main.71d6c598da8ca542(%type.0 zeroinitializer), !dbg !36 -// CHECK:STDOUT: call void @_CB.Main.553a1f59d1dd8381(ptr %x), !dbg !40 +// CHECK:STDOUT: call void @_CB.Main.89a3e87df6fdafe1(ptr %x), !dbg !40 // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2c62211f0854a75a(ptr %x) #0 !dbg !43 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.38241ddc2cd9d74d(ptr %x) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %A.call = call %type.0 @_CA.Main.71d6c598da8ca542(%type.0 zeroinitializer), !dbg !46 -// CHECK:STDOUT: call void @_CB.Main.2c62211f0854a75a(ptr %x), !dbg !48 +// CHECK:STDOUT: call void @_CB.Main.38241ddc2cd9d74d(ptr %x), !dbg !48 // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -93,26 +93,26 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !59 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.89a3e87df6fdafe1(ptr %x) #0 !dbg !59 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc34_7.3.temp = alloca i32, align 4, !dbg !64 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.3.temp), !dbg !64 // CHECK:STDOUT: %.loc34_5.2 = load i32, ptr %x, align 4, !dbg !63 // CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %.loc34_5.2), !dbg !64 // CHECK:STDOUT: store i32 %D.call, ptr %.loc34_7.3.temp, align 4, !dbg !64 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc34_7.3.temp), !dbg !64 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %.loc34_7.3.temp), !dbg !64 // CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.2c62211f0854a75a(ptr %x) #0 !dbg !69 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.38241ddc2cd9d74d(ptr %x) #0 !dbg !69 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc34_7.3.temp = alloca double, align 8, !dbg !74 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.3.temp), !dbg !74 // CHECK:STDOUT: %.loc34_5.2 = load double, ptr %x, align 8, !dbg !73 // CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %.loc34_5.2), !dbg !74 // CHECK:STDOUT: store double %D.call, ptr %.loc34_7.3.temp, align 8, !dbg !74 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc34_7.3.temp), !dbg !74 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %.loc34_7.3.temp), !dbg !74 // CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -160,15 +160,15 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // CHECK:STDOUT: !22 = !DILocation(line: 44, column: 3, scope: !14) // CHECK:STDOUT: !23 = !DILocation(line: 42, column: 1, scope: !14) // CHECK:STDOUT: !24 = !{!15, !16} -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 43, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !28) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 43, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !28) // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !6) // CHECK:STDOUT: !27 = !DILocation(line: 43, column: 3, scope: !25) // CHECK:STDOUT: !28 = !{!26} -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 44, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !32) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !4, line: 44, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !32) // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !29, type: !7) // CHECK:STDOUT: !31 = !DILocation(line: 44, column: 3, scope: !29) // CHECK:STDOUT: !32 = !{!30} -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.553a1f59d1dd8381", scope: null, file: !4, line: 37, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.89a3e87df6fdafe1", scope: null, file: !4, line: 37, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !33, type: !7) // CHECK:STDOUT: !36 = !DILocation(line: 38, column: 3, scope: !33) // CHECK:STDOUT: !37 = !{!7, !7} @@ -176,7 +176,7 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // CHECK:STDOUT: !40 = !DILocation(line: 39, column: 3, scope: !33) // CHECK:STDOUT: !41 = !DILocation(line: 37, column: 1, scope: !33) // CHECK:STDOUT: !42 = !{!34} -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2c62211f0854a75a", scope: null, file: !4, line: 37, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.38241ddc2cd9d74d", scope: null, file: !4, line: 37, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !7) // CHECK:STDOUT: !46 = !DILocation(line: 38, column: 3, scope: !43) // CHECK:STDOUT: !48 = !DILocation(line: 39, column: 3, scope: !43) @@ -186,7 +186,7 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !7) // CHECK:STDOUT: !57 = !DILocation(line: 26, column: 3, scope: !51) // CHECK:STDOUT: !58 = !{!52} -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.553a1f59d1dd8381", scope: null, file: !4, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !68) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.89a3e87df6fdafe1", scope: null, file: !4, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !68) // CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !7) // CHECK:STDOUT: !63 = !DILocation(line: 34, column: 5, scope: !59) // CHECK:STDOUT: !64 = !DILocation(line: 34, column: 3, scope: !59) @@ -194,7 +194,7 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // CHECK:STDOUT: !66 = !DISubroutineType(types: !65) // CHECK:STDOUT: !67 = !DILocation(line: 33, column: 1, scope: !59) // CHECK:STDOUT: !68 = !{!60} -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.2c62211f0854a75a", scope: null, file: !4, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !76) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.38241ddc2cd9d74d", scope: null, file: !4, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !76) // CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !7) // CHECK:STDOUT: !73 = !DILocation(line: 34, column: 5, scope: !69) // CHECK:STDOUT: !74 = !DILocation(line: 34, column: 3, scope: !69) diff --git a/toolchain/lower/testdata/function/generic/call_method.carbon b/toolchain/lower/testdata/function/generic/call_method.carbon index 955cde76af85..218f56c9bb19 100644 --- a/toolchain/lower/testdata/function/generic/call_method.carbon +++ b/toolchain/lower/testdata/function/generic/call_method.carbon @@ -39,19 +39,19 @@ fn CallF() -> i32 { // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !33 // CHECK:STDOUT: %.loc22_14 = load i32, ptr %n.var, align 4, !dbg !36 // CHECK:STDOUT: %C.F.call = call i32 @_CF.C.Main.4d6ceefeb7f772f4(ptr %c.var, i32 %.loc22_14), !dbg !35 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !33 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !33 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !31 // CHECK:STDOUT: ret i32 %C.F.call, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -97,11 +97,11 @@ fn CallF() -> i32 { // CHECK:STDOUT: !37 = !{!20, !25, !20} // CHECK:STDOUT: !38 = !DISubroutineType(types: !37) // CHECK:STDOUT: !39 = !DILocation(line: 22, column: 3, scope: !28) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 21, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 21, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) // CHECK:STDOUT: !42 = !DILocation(line: 21, column: 3, scope: !40) // CHECK:STDOUT: !43 = !{!41} -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !25) // CHECK:STDOUT: !46 = !DILocation(line: 20, column: 3, scope: !44) // CHECK:STDOUT: !47 = !{!45} diff --git a/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon b/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon index c0cde473b96e..70e442ede98a 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon @@ -82,27 +82,27 @@ fn M() { // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc15_43, i64 0, i1 false), !dbg !48 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc40_9.3.temp), !dbg !51 // CHECK:STDOUT: call void @_CF.Main.42513763e01cba2c(ptr %.loc40_9.3.temp, ptr %c.var, i32 0), !dbg !51 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc40_9.3.temp), !dbg !51 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !48 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !26 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !24 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %.loc40_9.3.temp), !dbg !51 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !48 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %m.var), !dbg !26 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !24 // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !57 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } @@ -175,7 +175,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.cbd14a388b4a1c25:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.08d9e38b928ba575:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 5, 4, 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @_CF.Main.a76b78461416b4a8, { 1, 2, 0 } @@ -224,15 +224,15 @@ fn M() { // CHECK:STDOUT: !48 = !DILocation(line: 39, column: 3, scope: !23) // CHECK:STDOUT: !51 = !DILocation(line: 40, column: 3, scope: !23) // CHECK:STDOUT: !52 = !DILocation(line: 28, column: 1, scope: !23) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !4, line: 40, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !56) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !4, line: 40, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !56) // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !7) // CHECK:STDOUT: !55 = !DILocation(line: 40, column: 3, scope: !53) // CHECK:STDOUT: !56 = !{!54} -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 30, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !60) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !4, line: 30, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !60) // CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !57, type: !7) // CHECK:STDOUT: !59 = !DILocation(line: 30, column: 3, scope: !57) // CHECK:STDOUT: !60 = !{!58} -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !64) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !64) // CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !6) // CHECK:STDOUT: !63 = !DILocation(line: 29, column: 3, scope: !61) // CHECK:STDOUT: !64 = !{!62} diff --git a/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon b/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon index 36bbebc8af36..d91066358d9b 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon @@ -86,19 +86,19 @@ fn M() { // CHECK:STDOUT: %A.call.loc56 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc56_5, i32 0), !dbg !36 // CHECK:STDOUT: %.loc57_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !37 // CHECK:STDOUT: %A.call.loc57 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc57_5, i32 0), !dbg !38 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %m.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !15 // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -293,11 +293,11 @@ fn M() { // CHECK:STDOUT: !37 = !DILocation(line: 57, column: 5, scope: !14) // CHECK:STDOUT: !38 = !DILocation(line: 57, column: 3, scope: !14) // CHECK:STDOUT: !39 = !DILocation(line: 48, column: 1, scope: !14) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 50, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !4, line: 50, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !9) // CHECK:STDOUT: !42 = !DILocation(line: 50, column: 3, scope: !40) // CHECK:STDOUT: !43 = !{!41} -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 49, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 49, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !6) // CHECK:STDOUT: !46 = !DILocation(line: 49, column: 3, scope: !44) // CHECK:STDOUT: !47 = !{!45} diff --git a/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon b/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon index 7fe8535d12e4..ef6a78c99011 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon @@ -68,19 +68,19 @@ fn M() { // CHECK:STDOUT: %F.call.loc40 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc40_5, i32 0), !dbg !36 // CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !37 // CHECK:STDOUT: %F.call.loc41 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc41_5, i32 0), !dbg !38 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %m.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !15 // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -218,11 +218,11 @@ fn M() { // CHECK:STDOUT: !37 = !DILocation(line: 41, column: 5, scope: !14) // CHECK:STDOUT: !38 = !DILocation(line: 41, column: 3, scope: !14) // CHECK:STDOUT: !39 = !DILocation(line: 32, column: 1, scope: !14) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 34, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !4, line: 34, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !9) // CHECK:STDOUT: !42 = !DILocation(line: 34, column: 3, scope: !40) // CHECK:STDOUT: !43 = !{!41} -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !6) // CHECK:STDOUT: !46 = !DILocation(line: 33, column: 3, scope: !44) // CHECK:STDOUT: !47 = !{!45} diff --git a/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon b/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon index 11724e6453c1..51e88b96c318 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon @@ -62,19 +62,19 @@ fn M() { // CHECK:STDOUT: %.loc31_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !38 // CHECK:STDOUT: %.loc31_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !39 // CHECK:STDOUT: %F.call.loc31 = call i32 @_CF.Main.369f53a8d4c38871(ptr %.loc31_5, ptr %.loc31_14, i32 0), !dbg !40 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %m.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !15 // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !46 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !46 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } @@ -135,11 +135,11 @@ fn M() { // CHECK:STDOUT: !39 = !DILocation(line: 31, column: 14, scope: !14) // CHECK:STDOUT: !40 = !DILocation(line: 31, column: 3, scope: !14) // CHECK:STDOUT: !41 = !DILocation(line: 22, column: 1, scope: !14) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 24, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !4, line: 24, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !9) // CHECK:STDOUT: !44 = !DILocation(line: 24, column: 3, scope: !42) // CHECK:STDOUT: !45 = !{!43} -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !6) // CHECK:STDOUT: !48 = !DILocation(line: 23, column: 3, scope: !46) // CHECK:STDOUT: !49 = !{!47} diff --git a/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon b/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon index 77e99987bee0..2e55acfe18bb 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon @@ -136,33 +136,33 @@ fn M() { // CHECK:STDOUT: %.loc52_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !100 // CHECK:STDOUT: %.loc52_25 = load ptr, ptr %ptr_bool.var, align 8, !dbg !101 // CHECK:STDOUT: %F.call.loc52 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc52_5, ptr %.loc52_15, ptr %.loc52_25, i32 0), !dbg !102 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %val_f64.var), !dbg !27 -// CHECK:STDOUT: call void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %val_i64.var), !dbg !25 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %val_i32.var), !dbg !23 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %val_i16.var), !dbg !21 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %val_f64.var), !dbg !27 +// CHECK:STDOUT: call void @"_COp.5aacfd7dcc330b17:core.Destroy.Core"(ptr %val_i64.var), !dbg !25 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %val_i32.var), !dbg !23 +// CHECK:STDOUT: call void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %val_i16.var), !dbg !21 // CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !104 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !104 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %self) #0 !dbg !108 { +// CHECK:STDOUT: define weak_odr void @"_COp.5aacfd7dcc330b17:core.Destroy.Core"(ptr %self) #0 !dbg !108 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !112 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !112 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %self) #0 !dbg !116 { +// CHECK:STDOUT: define weak_odr void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %self) #0 !dbg !116 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !118 // CHECK:STDOUT: } @@ -370,19 +370,19 @@ fn M() { // CHECK:STDOUT: !101 = !DILocation(line: 52, column: 25, scope: !20) // CHECK:STDOUT: !102 = !DILocation(line: 52, column: 3, scope: !20) // CHECK:STDOUT: !103 = !DILocation(line: 22, column: 1, scope: !20) -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 26, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !107) +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !4, line: 26, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !107) // CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !104, type: !11) // CHECK:STDOUT: !106 = !DILocation(line: 26, column: 3, scope: !104) // CHECK:STDOUT: !107 = !{!105} -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5f42013854821c52:core.Destroy.Core", scope: null, file: !4, line: 25, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !111) +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5aacfd7dcc330b17:core.Destroy.Core", scope: null, file: !4, line: 25, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !111) // CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !108, type: !8) // CHECK:STDOUT: !110 = !DILocation(line: 25, column: 3, scope: !108) // CHECK:STDOUT: !111 = !{!109} -// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 24, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !115) +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 24, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !115) // CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !6) // CHECK:STDOUT: !114 = !DILocation(line: 24, column: 3, scope: !112) // CHECK:STDOUT: !115 = !{!113} -// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "Op", linkageName: "_COp.91f16365ca65525e:core.Destroy.Core", scope: null, file: !4, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !119) +// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d57cb32fcf12ec07:core.Destroy.Core", scope: null, file: !4, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !119) // CHECK:STDOUT: !117 = !DILocalVariable(arg: 1, scope: !116, type: !7) // CHECK:STDOUT: !118 = !DILocation(line: 23, column: 3, scope: !116) // CHECK:STDOUT: !119 = !{!117} diff --git a/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon b/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon index f09ebdd434f7..c0362eaec631 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon @@ -112,19 +112,19 @@ fn M() { // CHECK:STDOUT: %A.call.loc82 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc82_5, i32 0), !dbg !36 // CHECK:STDOUT: %.loc83_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !37 // CHECK:STDOUT: %A.call.loc83 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc83_5, i32 0), !dbg !38 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %m.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !15 // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -406,11 +406,11 @@ fn M() { // CHECK:STDOUT: !37 = !DILocation(line: 83, column: 5, scope: !14) // CHECK:STDOUT: !38 = !DILocation(line: 83, column: 3, scope: !14) // CHECK:STDOUT: !39 = !DILocation(line: 74, column: 1, scope: !14) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 76, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !4, line: 76, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !9) // CHECK:STDOUT: !42 = !DILocation(line: 76, column: 3, scope: !40) // CHECK:STDOUT: !43 = !{!41} -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 75, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 75, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !6) // CHECK:STDOUT: !46 = !DILocation(line: 75, column: 3, scope: !44) // CHECK:STDOUT: !47 = !{!45} diff --git a/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon b/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon index d267e0f54fa7..63e3fd0762cc 100644 --- a/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon +++ b/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon @@ -51,7 +51,7 @@ fn M() { // CHECK:STDOUT: %type.26 = type {} // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -87,20 +87,20 @@ fn M() { // CHECK:STDOUT: %F.call.loc42 = call double @_CF.Main.c5e4ba542a56b71f(double %.loc42_5), !dbg !70 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !71 // CHECK:STDOUT: %F.call.loc44 = call %type.26 @_CF.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !73 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !71 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %var_f64.var), !dbg !67 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var_i32.var), !dbg !61 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %_.var), !dbg !71 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %var_f64.var), !dbg !67 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %var_i32.var), !dbg !61 // CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !75 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !75 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !79 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } @@ -142,7 +142,7 @@ fn M() { // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !142 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !142 // CHECK:STDOUT: %C.Cfn.call = call ptr @_CCfn.C.Main.a76b78461416b4a8(ptr %c.var, ptr %x), !dbg !144 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !142 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !142 // CHECK:STDOUT: ret ptr %C.Cfn.call, !dbg !148 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -152,7 +152,7 @@ fn M() { // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !177 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !177 // CHECK:STDOUT: %C.Cfn.call = call i32 @_CCfn.C.Main.4d6ceefeb7f772f4(ptr %c.var, i32 %x), !dbg !179 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !177 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !177 // CHECK:STDOUT: ret i32 %C.Cfn.call, !dbg !183 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -162,7 +162,7 @@ fn M() { // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !190 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !190 // CHECK:STDOUT: %C.Cfn.call = call double @_CCfn.C.Main.c5e4ba542a56b71f(ptr %c.var, double %x), !dbg !192 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !190 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !190 // CHECK:STDOUT: ret double %C.Cfn.call, !dbg !194 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -172,7 +172,7 @@ fn M() { // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !201 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !201 // CHECK:STDOUT: %C.Cfn.call = call %type.26 @_CCfn.C.Main.71d6c598da8ca542(ptr %c.var, %type.26 %x), !dbg !203 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !201 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !201 // CHECK:STDOUT: ret %type.26 %C.Cfn.call, !dbg !205 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -222,7 +222,7 @@ fn M() { // CHECK:STDOUT: !39 = !DISubroutineType(types: !38) // CHECK:STDOUT: !40 = !{null, !34} // CHECK:STDOUT: !41 = !DISubroutineType(types: !40) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !32, line: 24, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !45) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !32, line: 24, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !45) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !35) // CHECK:STDOUT: !44 = !DILocation(line: 24, column: 3, scope: !42) // CHECK:STDOUT: !45 = !{!43} @@ -249,11 +249,11 @@ fn M() { // CHECK:STDOUT: !71 = !DILocation(line: 43, column: 3, scope: !46) // CHECK:STDOUT: !73 = !DILocation(line: 44, column: 3, scope: !46) // CHECK:STDOUT: !74 = !DILocation(line: 32, column: 1, scope: !46) -// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 41, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !78) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !32, line: 41, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !78) // CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !35) // CHECK:STDOUT: !77 = !DILocation(line: 41, column: 3, scope: !75) // CHECK:STDOUT: !78 = !{!76} -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 39, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !82) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !32, line: 39, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !82) // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !34) // CHECK:STDOUT: !81 = !DILocation(line: 39, column: 3, scope: !79) // CHECK:STDOUT: !82 = !{!80} diff --git a/toolchain/lower/testdata/function/generic/import.carbon b/toolchain/lower/testdata/function/generic/import.carbon index c01f233883ab..f5caf30e4878 100644 --- a/toolchain/lower/testdata/function/generic/import.carbon +++ b/toolchain/lower/testdata/function/generic/import.carbon @@ -124,12 +124,12 @@ fn Call() -> i32 { // CHECK:STDOUT: store ptr %DirectGeneric.call, ptr %p.var, align 8, !dbg !40 // CHECK:STDOUT: %.loc9_11 = load ptr, ptr %p.var, align 8, !dbg !48 // CHECK:STDOUT: %.loc9_10.2 = load i32, ptr %.loc9_11, align 4, !dbg !49 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !38 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !38 // CHECK:STDOUT: ret i32 %.loc9_10.2, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } @@ -190,7 +190,7 @@ fn Call() -> i32 { // CHECK:STDOUT: !48 = !DILocation(line: 9, column: 11, scope: !35) // CHECK:STDOUT: !49 = !DILocation(line: 9, column: 10, scope: !35) // CHECK:STDOUT: !50 = !DILocation(line: 9, column: 3, scope: !35) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !28, line: 7, type: !34, spFlags: DISPFlagDefinition, unit: !29, retainedNodes: !54) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !28, line: 7, type: !34, spFlags: DISPFlagDefinition, unit: !29, retainedNodes: !54) // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !30) // CHECK:STDOUT: !53 = !DILocation(line: 7, column: 3, scope: !51) // CHECK:STDOUT: !54 = !{!52} diff --git a/toolchain/lower/testdata/function/generic/import_core_witness.carbon b/toolchain/lower/testdata/function/generic/import_core_witness.carbon index 10b1fe4f2a31..d1adc6bc2508 100644 --- a/toolchain/lower/testdata/function/generic/import_core_witness.carbon +++ b/toolchain/lower/testdata/function/generic/import_core_witness.carbon @@ -33,7 +33,7 @@ fn Run() { // CHECK:STDOUT: source_filename = "lib.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !9 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !9 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } @@ -50,7 +50,7 @@ fn Run() { // CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !7 = !{null, !6} // CHECK:STDOUT: !8 = !DISubroutineType(types: !7) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 7, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !12) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 7, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !12) // CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !9, type: !6) // CHECK:STDOUT: !11 = !DILocation(line: 7, column: 3, scope: !9) // CHECK:STDOUT: !12 = !{!10} @@ -71,11 +71,11 @@ fn Run() { // CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !23 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !23 // CHECK:STDOUT: store i32 0, ptr %1, align 4, !dbg !23 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !23 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %1), !dbg !23 // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr) +// CHECK:STDOUT: declare void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 diff --git a/toolchain/lower/testdata/function/generic/import_unused_def.carbon b/toolchain/lower/testdata/function/generic/import_unused_def.carbon index e89cf56d612f..55ebe223c9d9 100644 --- a/toolchain/lower/testdata/function/generic/import_unused_def.carbon +++ b/toolchain/lower/testdata/function/generic/import_unused_def.carbon @@ -51,13 +51,13 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cdca8898aabbc885:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.ed1ef26650163b11:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } @@ -80,11 +80,11 @@ fn Main() { // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) // CHECK:STDOUT: !32 = !DILocation(line: 13, column: 5, scope: !25) // CHECK:STDOUT: !33 = !{!26} -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !37) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !37) // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !34, type: !20) // CHECK:STDOUT: !36 = !DILocation(line: 18, column: 3, scope: !34) // CHECK:STDOUT: !37 = !{!35} -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cdca8898aabbc885:core.Destroy.Core", scope: null, file: !18, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ed1ef26650163b11:core.Destroy.Core", scope: null, file: !18, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) // CHECK:STDOUT: !40 = !DILocation(line: 18, column: 3, scope: !38) // CHECK:STDOUT: !41 = !{!39} @@ -108,15 +108,15 @@ fn Main() { // CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !57 // CHECK:STDOUT: %3 = load i32, ptr %1, align 4, !dbg !60 // CHECK:STDOUT: %4 = call i32 @"_COp.Foo.Main:Copy.Core"(i32 %3), !dbg !60 -// CHECK:STDOUT: call void @"_COp.cdca8898aabbc885:core.Destroy.Core"(ptr %1), !dbg !57 +// CHECK:STDOUT: call void @"_COp.ed1ef26650163b11:core.Destroy.Core"(ptr %1), !dbg !57 // CHECK:STDOUT: ret i32 %4, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @"_COp.Foo.Main:Copy.Core"(i32) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr) +// CHECK:STDOUT: declare void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.cdca8898aabbc885:core.Destroy.Core"(ptr) +// CHECK:STDOUT: declare void @"_COp.ed1ef26650163b11:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 diff --git a/toolchain/lower/testdata/function/generic/type_representation.carbon b/toolchain/lower/testdata/function/generic/type_representation.carbon index 1435063da332..094c5db8f413 100644 --- a/toolchain/lower/testdata/function/generic/type_representation.carbon +++ b/toolchain/lower/testdata/function/generic/type_representation.carbon @@ -87,12 +87,12 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CF_i32.Main(i32 %a) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.51815a09c4c03ee5(i32 %a), !dbg !46 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.f93d238dac954dee(i32 %a), !dbg !46 // CHECK:STDOUT: ret i32 %F.call, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } @@ -114,18 +114,18 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF_X.Main(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.425841177dc25b60(ptr %return, ptr %a), !dbg !69 +// CHECK:STDOUT: call void @_CF.Main.5edf9c632b3db7a5(ptr %return, ptr %a), !dbg !69 // CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !72 { +// CHECK:STDOUT: define weak_odr void @"_COp.b4c762864cd9a02b:core.Destroy.Core"(ptr %self) #0 !dbg !72 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %self) #0 !dbg !76 { +// CHECK:STDOUT: define weak_odr void @"_COp.8b0bf151036f045a:core.Destroy.Core"(ptr %self) #0 !dbg !76 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !78 // CHECK:STDOUT: } @@ -139,7 +139,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF_empty_tuple.Main() #0 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.0ffdc268e95480c6(), !dbg !90 +// CHECK:STDOUT: call void @_CF.Main.437db137e54a21c0(), !dbg !90 // CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -160,12 +160,12 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF_two_tuple.Main(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !100 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.fa2890b7def5e5c7(ptr %return, ptr %a), !dbg !106 +// CHECK:STDOUT: call void @_CF.Main.b069b9e27a2f3b24(ptr %return, ptr %a), !dbg !106 // CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !109 { +// CHECK:STDOUT: define weak_odr void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %self) #0 !dbg !109 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !111 // CHECK:STDOUT: } @@ -187,41 +187,41 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF_nested_tuple.Main(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) #0 !dbg !123 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.2353b6e2f4825328(ptr %return, ptr %a), !dbg !129 +// CHECK:STDOUT: call void @_CF.Main.f320bf07a6b502ca(ptr %return, ptr %a), !dbg !129 // CHECK:STDOUT: ret void, !dbg !130 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1c942cf0c4ee9edc:core.Destroy.Core"(ptr %self) #0 !dbg !132 { +// CHECK:STDOUT: define weak_odr void @"_COp.ae1e3622d7875d32:core.Destroy.Core"(ptr %self) #0 !dbg !132 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.51815a09c4c03ee5(i32 %a) #0 !dbg !136 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.f93d238dac954dee(i32 %a) #0 !dbg !136 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !141 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !141 // CHECK:STDOUT: %Copy.WithSelf.Op.call.loc18 = call i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %a), !dbg !142 // CHECK:STDOUT: store i32 %Copy.WithSelf.Op.call.loc18, ptr %_.var, align 4, !dbg !141 // CHECK:STDOUT: %Copy.WithSelf.Op.call.loc19 = call i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %a), !dbg !144 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !141 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var), !dbg !141 // CHECK:STDOUT: ret i32 %Copy.WithSelf.Op.call.loc19, !dbg !145 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.425841177dc25b60(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !147 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.5edf9c632b3db7a5(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !147 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !152 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !152 // CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %_.var, ptr %a), !dbg !153 // CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %return, ptr %a), !dbg !155 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var), !dbg !152 +// CHECK:STDOUT: call void @"_COp.8b0bf151036f045a:core.Destroy.Core"(ptr %_.var), !dbg !152 // CHECK:STDOUT: ret void, !dbg !156 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.0ffdc268e95480c6() #0 !dbg !158 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.437db137e54a21c0() #0 !dbg !158 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !162 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !162 @@ -231,24 +231,24 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.fa2890b7def5e5c7(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !167 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.b069b9e27a2f3b24(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !167 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !172 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !172 // CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %_.var, ptr %a), !dbg !173 // CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %return, ptr %a), !dbg !175 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %_.var), !dbg !172 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %_.var), !dbg !172 // CHECK:STDOUT: ret void, !dbg !176 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2353b6e2f4825328(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) #0 !dbg !178 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.f320bf07a6b502ca(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) #0 !dbg !178 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { { i32, i32 }, { i32, i32 } }, align 4, !dbg !183 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !183 // CHECK:STDOUT: call void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr %_.var, ptr %a), !dbg !184 // CHECK:STDOUT: call void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr %return, ptr %a), !dbg !186 -// CHECK:STDOUT: call void @"_COp.1c942cf0c4ee9edc:core.Destroy.Core"(ptr %_.var), !dbg !183 +// CHECK:STDOUT: call void @"_COp.ae1e3622d7875d32:core.Destroy.Core"(ptr %_.var), !dbg !183 // CHECK:STDOUT: ret void, !dbg !187 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -289,7 +289,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !46 = !DILocation(line: 29, column: 10, scope: !40) // CHECK:STDOUT: !47 = !DILocation(line: 29, column: 3, scope: !40) // CHECK:STDOUT: !48 = !{!41} -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 29, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !52) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 29, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !52) // CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !20) // CHECK:STDOUT: !51 = !DILocation(line: 29, column: 10, scope: !49) // CHECK:STDOUT: !52 = !{!50} @@ -305,11 +305,11 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !69 = !DILocation(line: 44, column: 10, scope: !63) // CHECK:STDOUT: !70 = !DILocation(line: 44, column: 3, scope: !63) // CHECK:STDOUT: !71 = !{!64} -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !18, line: 44, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !75) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b4c762864cd9a02b:core.Destroy.Core", scope: null, file: !18, line: 44, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !75) // CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !25) // CHECK:STDOUT: !74 = !DILocation(line: 44, column: 10, scope: !72) // CHECK:STDOUT: !75 = !{!73} -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Op", linkageName: "_COp.617e09fd62745f5d:core.Destroy.Core", scope: null, file: !18, line: 44, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !79) +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8b0bf151036f045a:core.Destroy.Core", scope: null, file: !18, line: 44, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !79) // CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !76, type: !25) // CHECK:STDOUT: !78 = !DILocation(line: 44, column: 10, scope: !76) // CHECK:STDOUT: !79 = !{!77} @@ -328,7 +328,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !106 = !DILocation(line: 64, column: 10, scope: !100) // CHECK:STDOUT: !107 = !DILocation(line: 64, column: 3, scope: !100) // CHECK:STDOUT: !108 = !{!101} -// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 64, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !112) +// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:core.Destroy.Core", scope: null, file: !18, line: 64, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !112) // CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !109, type: !25) // CHECK:STDOUT: !111 = !DILocation(line: 64, column: 10, scope: !109) // CHECK:STDOUT: !112 = !{!110} @@ -344,37 +344,37 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !129 = !DILocation(line: 74, column: 10, scope: !123) // CHECK:STDOUT: !130 = !DILocation(line: 74, column: 3, scope: !123) // CHECK:STDOUT: !131 = !{!124} -// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1c942cf0c4ee9edc:core.Destroy.Core", scope: null, file: !18, line: 74, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !135) +// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ae1e3622d7875d32:core.Destroy.Core", scope: null, file: !18, line: 74, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !135) // CHECK:STDOUT: !133 = !DILocalVariable(arg: 1, scope: !132, type: !25) // CHECK:STDOUT: !134 = !DILocation(line: 74, column: 10, scope: !132) // CHECK:STDOUT: !135 = !{!133} -// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.51815a09c4c03ee5", scope: null, file: !18, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !146) +// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.f93d238dac954dee", scope: null, file: !18, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !146) // CHECK:STDOUT: !137 = !DILocalVariable(arg: 1, scope: !136, type: !20) // CHECK:STDOUT: !141 = !DILocation(line: 18, column: 3, scope: !136) // CHECK:STDOUT: !142 = !DILocation(line: 18, column: 14, scope: !136) // CHECK:STDOUT: !144 = !DILocation(line: 19, column: 10, scope: !136) // CHECK:STDOUT: !145 = !DILocation(line: 19, column: 3, scope: !136) // CHECK:STDOUT: !146 = !{!137} -// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.425841177dc25b60", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !157) +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5edf9c632b3db7a5", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !157) // CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !147, type: !25) // CHECK:STDOUT: !152 = !DILocation(line: 18, column: 3, scope: !147) // CHECK:STDOUT: !153 = !DILocation(line: 18, column: 14, scope: !147) // CHECK:STDOUT: !155 = !DILocation(line: 19, column: 10, scope: !147) // CHECK:STDOUT: !156 = !DILocation(line: 19, column: 3, scope: !147) // CHECK:STDOUT: !157 = !{!148} -// CHECK:STDOUT: !158 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.0ffdc268e95480c6", scope: null, file: !18, line: 17, type: !31, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !158 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.437db137e54a21c0", scope: null, file: !18, line: 17, type: !31, spFlags: DISPFlagDefinition, unit: !19) // CHECK:STDOUT: !162 = !DILocation(line: 18, column: 3, scope: !158) // CHECK:STDOUT: !163 = !DILocation(line: 18, column: 14, scope: !158) // CHECK:STDOUT: !165 = !DILocation(line: 19, column: 10, scope: !158) // CHECK:STDOUT: !166 = !DILocation(line: 19, column: 3, scope: !158) -// CHECK:STDOUT: !167 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.fa2890b7def5e5c7", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !177) +// CHECK:STDOUT: !167 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b069b9e27a2f3b24", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !177) // CHECK:STDOUT: !168 = !DILocalVariable(arg: 1, scope: !167, type: !25) // CHECK:STDOUT: !172 = !DILocation(line: 18, column: 3, scope: !167) // CHECK:STDOUT: !173 = !DILocation(line: 18, column: 14, scope: !167) // CHECK:STDOUT: !175 = !DILocation(line: 19, column: 10, scope: !167) // CHECK:STDOUT: !176 = !DILocation(line: 19, column: 3, scope: !167) // CHECK:STDOUT: !177 = !{!168} -// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2353b6e2f4825328", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !188) +// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.f320bf07a6b502ca", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !188) // CHECK:STDOUT: !179 = !DILocalVariable(arg: 1, scope: !178, type: !25) // CHECK:STDOUT: !183 = !DILocation(line: 18, column: 3, scope: !178) // CHECK:STDOUT: !184 = !DILocation(line: 18, column: 14, scope: !178) diff --git a/toolchain/lower/testdata/impl/impl.carbon b/toolchain/lower/testdata/impl/impl.carbon index 82b88bd1ea26..dea6f7a0a327 100644 --- a/toolchain/lower/testdata/impl/impl.carbon +++ b/toolchain/lower/testdata/impl/impl.carbon @@ -156,19 +156,19 @@ impl C(B) as I { // CHECK:STDOUT: call void @"_CF.C.Main:I.bd4fb75a414fe858.Main"(ptr %a.var, ptr %x), !dbg !68 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !70 // CHECK:STDOUT: call void @"_CF.C.Main:I.a6a60dfee2d7d273.Main"(ptr %b.var, ptr %y), !dbg !71 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %b.var), !dbg !70 -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %a.var), !dbg !67 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %b.var), !dbg !70 +// CHECK:STDOUT: call void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %a.var), !dbg !67 // CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !75 { +// CHECK:STDOUT: define weak_odr void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self) #0 !dbg !75 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #0 !dbg !79 { +// CHECK:STDOUT: define weak_odr void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } @@ -217,11 +217,11 @@ impl C(B) as I { // CHECK:STDOUT: !71 = !DILocation(line: 22, column: 21, scope: !62) // CHECK:STDOUT: !73 = !DILocation(line: 20, column: 1, scope: !62) // CHECK:STDOUT: !74 = !{!63, !64} -// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !40, line: 22, type: !47, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !78) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8c4b83ecd900f1ea:core.Destroy.Core", scope: null, file: !40, line: 22, type: !47, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !78) // CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !21) // CHECK:STDOUT: !77 = !DILocation(line: 22, column: 3, scope: !75) // CHECK:STDOUT: !78 = !{!76} -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !40, line: 21, type: !47, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !82) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5a23cc09585c55d2:core.Destroy.Core", scope: null, file: !40, line: 21, type: !47, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !82) // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !21) // CHECK:STDOUT: !81 = !DILocation(line: 21, column: 3, scope: !79) // CHECK:STDOUT: !82 = !{!80} diff --git a/toolchain/lower/testdata/impl/import_facet.carbon b/toolchain/lower/testdata/impl/import_facet.carbon index ede680e7fc2d..2a84ef8e7226 100644 --- a/toolchain/lower/testdata/impl/import_facet.carbon +++ b/toolchain/lower/testdata/impl/import_facet.carbon @@ -92,7 +92,7 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: ; ModuleID = 'd.carbon' // CHECK:STDOUT: source_filename = "d.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @C.val.f2f.anon = internal constant {} zeroinitializer +// CHECK:STDOUT: @C.val.564.anon = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define ptr @_CF.Main(ptr %d) #0 !dbg !17 { @@ -100,13 +100,13 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: %.loc5_21.1.temp = alloca {}, align 1, !dbg !22 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc5_21.1.temp), !dbg !22 // CHECK:STDOUT: call void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba"(ptr %.loc5_21.1.temp, ptr %d), !dbg !22 -// CHECK:STDOUT: %C.GetC.call = call ptr @_CGetC.C.Main.8b8580dcf8be64c1(ptr %.loc5_21.1.temp), !dbg !22 -// CHECK:STDOUT: call void @"_COp.42b1207bb77e2640:core.Destroy.Core"(ptr %.loc5_21.1.temp), !dbg !22 +// CHECK:STDOUT: %C.GetC.call = call ptr @_CGetC.C.Main.4a10e8a81ade3744(ptr %.loc5_21.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.f71821293eb4cf2f:core.Destroy.Core"(ptr %.loc5_21.1.temp), !dbg !22 // CHECK:STDOUT: ret ptr %C.GetC.call, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.42b1207bb77e2640:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.f71821293eb4cf2f:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } @@ -116,12 +116,12 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba"(ptr sret({}) %return, ptr %self) #0 !dbg !29 { -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.f2f.anon, i64 0, i1 false), !dbg !34 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.564.anon, i64 0, i1 false), !dbg !34 // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CGetC.C.Main.8b8580dcf8be64c1(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: define linkonce_odr ptr @_CGetC.C.Main.4a10e8a81ade3744(ptr %self) #0 !dbg !36 { // CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !41 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !41 // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !41 @@ -154,7 +154,7 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: !22 = !DILocation(line: 5, column: 10, scope: !17) // CHECK:STDOUT: !23 = !DILocation(line: 5, column: 3, scope: !17) // CHECK:STDOUT: !24 = !{!18} -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.42b1207bb77e2640:core.Destroy.Core", scope: null, file: !10, line: 5, type: !16, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !28) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f71821293eb4cf2f:core.Destroy.Core", scope: null, file: !10, line: 5, type: !16, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !28) // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !12) // CHECK:STDOUT: !27 = !DILocation(line: 5, column: 10, scope: !25) // CHECK:STDOUT: !28 = !{!26} @@ -162,7 +162,7 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !29, type: !12) // CHECK:STDOUT: !34 = !DILocation(line: 7, column: 7, scope: !29) // CHECK:STDOUT: !35 = !{!30} -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "GetC", linkageName: "_CGetC.C.Main.8b8580dcf8be64c1", scope: null, file: !4, line: 4, type: !14, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !45) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "GetC", linkageName: "_CGetC.C.Main.4a10e8a81ade3744", scope: null, file: !4, line: 4, type: !14, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !45) // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !12) // CHECK:STDOUT: !41 = !DILocation(line: 5, column: 5, scope: !36) // CHECK:STDOUT: !43 = !DILocation(line: 6, column: 12, scope: !36) diff --git a/toolchain/lower/testdata/impl/import_thunk.carbon b/toolchain/lower/testdata/impl/import_thunk.carbon index 942f96a158fb..e04e747a8b18 100644 --- a/toolchain/lower/testdata/impl/import_thunk.carbon +++ b/toolchain/lower/testdata/impl/import_thunk.carbon @@ -110,25 +110,25 @@ fn Test(a: A) -> C { // CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.4.temp, ptr %a), !dbg !57 // CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc20_19.1.temp, ptr %.4.temp), !dbg !58 // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !58 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !58 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.4.temp), !dbg !57 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !58 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.4.temp), !dbg !57 // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !60 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !60 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !64 { +// CHECK:STDOUT: define weak_odr void @"_COp.0bfe8bb35a2876b2:core.Destroy.Core"(ptr %self) #0 !dbg !64 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !68 { +// CHECK:STDOUT: define weak_odr void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self) #0 !dbg !68 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } @@ -137,7 +137,7 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.535580a8a7a96b3b:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.8c4b83ecd900f1ea:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -182,15 +182,15 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !57 = !DILocation(line: 0, scope: !55) // CHECK:STDOUT: !58 = !DILocation(line: 20, column: 3, scope: !55) // CHECK:STDOUT: !59 = !{!56} -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !63) +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !63) // CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !20) // CHECK:STDOUT: !62 = !DILocation(line: 20, column: 3, scope: !60) // CHECK:STDOUT: !63 = !{!61} -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !67) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0bfe8bb35a2876b2:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !67) // CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !64, type: !21) // CHECK:STDOUT: !66 = !DILocation(line: 20, column: 3, scope: !64) // CHECK:STDOUT: !67 = !{!65} -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !71) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8c4b83ecd900f1ea:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !71) // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !21) // CHECK:STDOUT: !70 = !DILocation(line: 20, column: 3, scope: !68) // CHECK:STDOUT: !71 = !{!69} @@ -211,8 +211,8 @@ fn Test(a: A) -> C { // CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc7_19.1.temp, ptr %a), !dbg !79 // CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc7_20.2.temp, ptr %.loc7_19.1.temp), !dbg !80 // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc7_20.2.temp), !dbg !81 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc7_20.2.temp), !dbg !80 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc7_19.1.temp), !dbg !79 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc7_20.2.temp), !dbg !80 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc7_19.1.temp), !dbg !79 // CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -225,19 +225,19 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !87 { +// CHECK:STDOUT: define weak_odr void @"_COp.0bfe8bb35a2876b2:core.Destroy.Core"(ptr %self) #0 !dbg !87 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !91 { +// CHECK:STDOUT: define weak_odr void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self) #0 !dbg !91 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !93 // CHECK:STDOUT: } @@ -246,7 +246,7 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.535580a8a7a96b3b:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.8c4b83ecd900f1ea:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -273,15 +273,15 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !80 = !DILocation(line: 7, column: 10, scope: !74) // CHECK:STDOUT: !81 = !DILocation(line: 7, column: 3, scope: !74) // CHECK:STDOUT: !82 = !{!75} -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !72, line: 7, type: !25, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !86) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !72, line: 7, type: !25, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !86) // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !20) // CHECK:STDOUT: !85 = !DILocation(line: 7, column: 10, scope: !83) // CHECK:STDOUT: !86 = !{!84} -// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !72, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !90) +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0bfe8bb35a2876b2:core.Destroy.Core", scope: null, file: !72, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !90) // CHECK:STDOUT: !88 = !DILocalVariable(arg: 1, scope: !87, type: !21) // CHECK:STDOUT: !89 = !DILocation(line: 7, column: 10, scope: !87) // CHECK:STDOUT: !90 = !{!88} -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !72, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !94) +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8c4b83ecd900f1ea:core.Destroy.Core", scope: null, file: !72, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !94) // CHECK:STDOUT: !92 = !DILocalVariable(arg: 1, scope: !91, type: !21) // CHECK:STDOUT: !93 = !DILocation(line: 7, column: 10, scope: !91) // CHECK:STDOUT: !94 = !{!92} @@ -310,8 +310,8 @@ fn Test(a: A) -> C { // CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.4.temp, ptr %a), !dbg !108 // CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(ptr %.loc9_19.1.temp, ptr %.4.temp), !dbg !109 // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc9_19.1.temp), !dbg !109 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc9_19.1.temp), !dbg !109 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.4.temp), !dbg !108 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc9_19.1.temp), !dbg !109 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.4.temp), !dbg !108 // CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -320,19 +320,19 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !111 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !111 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !115 { +// CHECK:STDOUT: define weak_odr void @"_COp.0bfe8bb35a2876b2:core.Destroy.Core"(ptr %self) #0 !dbg !115 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !119 { +// CHECK:STDOUT: define weak_odr void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self) #0 !dbg !119 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } @@ -341,7 +341,7 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.535580a8a7a96b3b:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.8c4b83ecd900f1ea:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -374,15 +374,15 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !108 = !DILocation(line: 0, scope: !106) // CHECK:STDOUT: !109 = !DILocation(line: 9, column: 3, scope: !106) // CHECK:STDOUT: !110 = !{!107} -// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !95, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !114) +// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !95, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !114) // CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !111, type: !20) // CHECK:STDOUT: !113 = !DILocation(line: 9, column: 3, scope: !111) // CHECK:STDOUT: !114 = !{!112} -// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !95, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !118) +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0bfe8bb35a2876b2:core.Destroy.Core", scope: null, file: !95, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !118) // CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !21) // CHECK:STDOUT: !117 = !DILocation(line: 9, column: 3, scope: !115) // CHECK:STDOUT: !118 = !{!116} -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !95, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !122) +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8c4b83ecd900f1ea:core.Destroy.Core", scope: null, file: !95, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !122) // CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !21) // CHECK:STDOUT: !121 = !DILocation(line: 9, column: 3, scope: !119) // CHECK:STDOUT: !122 = !{!120} @@ -403,8 +403,8 @@ fn Test(a: A) -> C { // CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc8_18.1.temp, ptr %a), !dbg !130 // CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(ptr %.loc8_19.2.temp, ptr %.loc8_18.1.temp), !dbg !131 // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc8_19.2.temp), !dbg !132 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc8_19.2.temp), !dbg !131 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc8_18.1.temp), !dbg !130 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc8_19.2.temp), !dbg !131 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc8_18.1.temp), !dbg !130 // CHECK:STDOUT: ret void, !dbg !132 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -417,19 +417,19 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !134 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !134 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !136 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !138 { +// CHECK:STDOUT: define weak_odr void @"_COp.0bfe8bb35a2876b2:core.Destroy.Core"(ptr %self) #0 !dbg !138 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !140 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !142 { +// CHECK:STDOUT: define weak_odr void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self) #0 !dbg !142 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !144 // CHECK:STDOUT: } @@ -438,7 +438,7 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.535580a8a7a96b3b:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.8c4b83ecd900f1ea:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -465,15 +465,15 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !131 = !DILocation(line: 8, column: 10, scope: !125) // CHECK:STDOUT: !132 = !DILocation(line: 8, column: 3, scope: !125) // CHECK:STDOUT: !133 = !{!126} -// CHECK:STDOUT: !134 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !123, line: 8, type: !25, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !137) +// CHECK:STDOUT: !134 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !123, line: 8, type: !25, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !137) // CHECK:STDOUT: !135 = !DILocalVariable(arg: 1, scope: !134, type: !20) // CHECK:STDOUT: !136 = !DILocation(line: 8, column: 10, scope: !134) // CHECK:STDOUT: !137 = !{!135} -// CHECK:STDOUT: !138 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !123, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !141) +// CHECK:STDOUT: !138 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0bfe8bb35a2876b2:core.Destroy.Core", scope: null, file: !123, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !141) // CHECK:STDOUT: !139 = !DILocalVariable(arg: 1, scope: !138, type: !21) // CHECK:STDOUT: !140 = !DILocation(line: 8, column: 10, scope: !138) // CHECK:STDOUT: !141 = !{!139} -// CHECK:STDOUT: !142 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !123, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !145) +// CHECK:STDOUT: !142 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8c4b83ecd900f1ea:core.Destroy.Core", scope: null, file: !123, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !145) // CHECK:STDOUT: !143 = !DILocalVariable(arg: 1, scope: !142, type: !21) // CHECK:STDOUT: !144 = !DILocation(line: 8, column: 10, scope: !142) // CHECK:STDOUT: !145 = !{!143} diff --git a/toolchain/lower/testdata/impl/thunk.carbon b/toolchain/lower/testdata/impl/thunk.carbon index c1ac0d4ec81f..245dc04e8272 100644 --- a/toolchain/lower/testdata/impl/thunk.carbon +++ b/toolchain/lower/testdata/impl/thunk.carbon @@ -114,25 +114,25 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.4.temp, ptr %a), !dbg !57 // CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc20_19.1.temp, ptr %.4.temp), !dbg !58 // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !58 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !58 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.4.temp), !dbg !57 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !58 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.4.temp), !dbg !57 // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !60 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !60 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !64 { +// CHECK:STDOUT: define weak_odr void @"_COp.0bfe8bb35a2876b2:core.Destroy.Core"(ptr %self) #0 !dbg !64 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !68 { +// CHECK:STDOUT: define weak_odr void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self) #0 !dbg !68 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } @@ -149,8 +149,8 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc24_19.1.temp, ptr %a), !dbg !77 // CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc24_20.2.temp, ptr %.loc24_19.1.temp), !dbg !78 // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc24_20.2.temp), !dbg !79 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc24_20.2.temp), !dbg !78 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc24_19.1.temp), !dbg !77 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc24_20.2.temp), !dbg !78 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc24_19.1.temp), !dbg !77 // CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -158,7 +158,7 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.535580a8a7a96b3b:core.Destroy.Core", { 0, 1, 3, 2 } +// CHECK:STDOUT: uselistorder ptr @"_COp.8c4b83ecd900f1ea:core.Destroy.Core", { 0, 1, 3, 2 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 4, 3, 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -203,15 +203,15 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: !57 = !DILocation(line: 0, scope: !55) // CHECK:STDOUT: !58 = !DILocation(line: 20, column: 3, scope: !55) // CHECK:STDOUT: !59 = !{!56} -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !63) +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !63) // CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !20) // CHECK:STDOUT: !62 = !DILocation(line: 20, column: 3, scope: !60) // CHECK:STDOUT: !63 = !{!61} -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !67) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0bfe8bb35a2876b2:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !67) // CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !64, type: !21) // CHECK:STDOUT: !66 = !DILocation(line: 20, column: 3, scope: !64) // CHECK:STDOUT: !67 = !{!65} -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !71) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8c4b83ecd900f1ea:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !71) // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !21) // CHECK:STDOUT: !70 = !DILocation(line: 20, column: 3, scope: !68) // CHECK:STDOUT: !71 = !{!69} @@ -237,13 +237,13 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !92 { +// CHECK:STDOUT: define weak_odr void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self) #0 !dbg !92 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #0 !dbg !96 { +// CHECK:STDOUT: define weak_odr void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %self) #0 !dbg !96 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !98 // CHECK:STDOUT: } @@ -260,8 +260,8 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.loc22_22.1.temp, ptr %b), !dbg !108 // CHECK:STDOUT: call void @"_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %.loc22_23.3.temp, ptr %c, ptr %.loc22_22.1.temp), !dbg !107 // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %return, ptr %.loc22_23.3.temp), !dbg !109 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc22_23.3.temp), !dbg !107 -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %.loc22_22.1.temp), !dbg !108 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc22_23.3.temp), !dbg !107 +// CHECK:STDOUT: call void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %.loc22_22.1.temp), !dbg !108 // CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -302,8 +302,8 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.6.temp, ptr %x), !dbg !146 // CHECK:STDOUT: call void @"_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %.loc18_32.2.temp, ptr %self, ptr %.6.temp), !dbg !147 // CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %return, ptr %.loc18_32.2.temp), !dbg !147 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc18_32.2.temp), !dbg !147 -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %.6.temp), !dbg !146 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %.loc18_32.2.temp), !dbg !147 +// CHECK:STDOUT: call void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %.6.temp), !dbg !146 // CHECK:STDOUT: ret void, !dbg !147 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -332,11 +332,11 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !21) // CHECK:STDOUT: !90 = !DILocation(line: 7, column: 36, scope: !85) // CHECK:STDOUT: !91 = !{!86} -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !81, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !95) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8c4b83ecd900f1ea:core.Destroy.Core", scope: null, file: !81, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !95) // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !92, type: !21) // CHECK:STDOUT: !94 = !DILocation(line: 18, column: 3, scope: !92) // CHECK:STDOUT: !95 = !{!93} -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !81, type: !27, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !99) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5a23cc09585c55d2:core.Destroy.Core", scope: null, file: !81, type: !27, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !99) // CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !21) // CHECK:STDOUT: !98 = !DILocation(line: 0, scope: !96) // CHECK:STDOUT: !99 = !{!97} diff --git a/toolchain/lower/testdata/index/array_element_access.carbon b/toolchain/lower/testdata/index/array_element_access.carbon index 3c065270f52b..042a5dd60ee0 100644 --- a/toolchain/lower/testdata/index/array_element_access.carbon +++ b/toolchain/lower/testdata/index/array_element_access.carbon @@ -78,29 +78,29 @@ fn Run() { // CHECK:STDOUT: %.loc20_21.1.array.index = getelementptr inbounds [2 x i32], ptr %.loc20_18.1.temp, i32 0, i32 1, !dbg !51 // CHECK:STDOUT: %.loc20_21.2 = load i32, ptr %.loc20_21.1.array.index, align 4, !dbg !51 // CHECK:STDOUT: store i32 %.loc20_21.2, ptr %_.var.loc20, align 4, !dbg !50 -// CHECK:STDOUT: call void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %.loc20_18.1.temp), !dbg !51 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc20), !dbg !50 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc19), !dbg !46 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %b.var), !dbg !44 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc17_28.1.temp), !dbg !42 -// CHECK:STDOUT: call void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %a.var), !dbg !41 +// CHECK:STDOUT: call void @"_COp.8014ee1b1a984df0:core.Destroy.Core"(ptr %.loc20_18.1.temp), !dbg !51 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var.loc20), !dbg !50 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var.loc19), !dbg !46 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %b.var), !dbg !44 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %.loc17_28.1.temp), !dbg !42 +// CHECK:STDOUT: call void @"_COp.8014ee1b1a984df0:core.Destroy.Core"(ptr %a.var), !dbg !41 // CHECK:STDOUT: ret i32 0, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %self) #0 !dbg !58 { +// CHECK:STDOUT: define weak_odr void @"_COp.8014ee1b1a984df0:core.Destroy.Core"(ptr %self) #0 !dbg !58 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !62 { +// CHECK:STDOUT: define weak_odr void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %self) #0 !dbg !62 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } @@ -112,8 +112,8 @@ fn Run() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.70db2d92ffddbef7:core.Destroy.Core", { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.bdc700786da40234:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f58524831c37807e:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.8014ee1b1a984df0:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 5, 4, 3, 2, 1, 0 } // CHECK:STDOUT: @@ -153,15 +153,15 @@ fn Run() { // CHECK:STDOUT: !50 = !DILocation(line: 20, column: 3, scope: !40) // CHECK:STDOUT: !51 = !DILocation(line: 20, column: 16, scope: !40) // CHECK:STDOUT: !53 = !DILocation(line: 16, column: 1, scope: !40) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !57) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !57) // CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !20) // CHECK:STDOUT: !56 = !DILocation(line: 20, column: 16, scope: !54) // CHECK:STDOUT: !57 = !{!55} -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bdc700786da40234:core.Destroy.Core", scope: null, file: !18, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !61) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8014ee1b1a984df0:core.Destroy.Core", scope: null, file: !18, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !61) // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !21) // CHECK:STDOUT: !60 = !DILocation(line: 20, column: 16, scope: !58) // CHECK:STDOUT: !61 = !{!59} -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !65) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:core.Destroy.Core", scope: null, file: !18, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !65) // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !21) // CHECK:STDOUT: !64 = !DILocation(line: 17, column: 26, scope: !62) // CHECK:STDOUT: !65 = !{!63} diff --git a/toolchain/lower/testdata/interface/modifiers.carbon b/toolchain/lower/testdata/interface/modifiers.carbon index 5257018a8f76..bf544cbdc695 100644 --- a/toolchain/lower/testdata/interface/modifiers.carbon +++ b/toolchain/lower/testdata/interface/modifiers.carbon @@ -239,12 +239,12 @@ fn F() { // CHECK:STDOUT: %.loc10_15.2.temp = alloca {}, align 1, !dbg !39 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc10_15.2.temp), !dbg !39 // CHECK:STDOUT: call void @_CCallMethod.Main.805a971dc5455081(ptr @C.val.loc10_15.6), !dbg !43 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !39 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr @C.val), !dbg !39 // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } @@ -291,7 +291,7 @@ fn F() { // CHECK:STDOUT: !39 = !DILocation(line: 10, column: 14, scope: !38) // CHECK:STDOUT: !43 = !DILocation(line: 11, column: 3, scope: !38) // CHECK:STDOUT: !44 = !DILocation(line: 9, column: 1, scope: !38) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !33, line: 10, type: !37, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !48) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !33, line: 10, type: !37, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !48) // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !35) // CHECK:STDOUT: !47 = !DILocation(line: 10, column: 14, scope: !45) // CHECK:STDOUT: !48 = !{!46} @@ -329,12 +329,12 @@ fn F() { // CHECK:STDOUT: %.loc9_23.2.temp = alloca {}, align 1, !dbg !75 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_23.2.temp), !dbg !75 // CHECK:STDOUT: call void @_CClone.C.Main(ptr @C.val.loc9_23.6), !dbg !76 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !75 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr @C.val), !dbg !75 // CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !78 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !78 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } @@ -381,7 +381,7 @@ fn F() { // CHECK:STDOUT: !75 = !DILocation(line: 9, column: 22, scope: !74) // CHECK:STDOUT: !76 = !DILocation(line: 9, column: 14, scope: !74) // CHECK:STDOUT: !77 = !DILocation(line: 9, column: 5, scope: !74) -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !67, line: 9, type: !37, spFlags: DISPFlagDefinition, unit: !68, retainedNodes: !81) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !67, line: 9, type: !37, spFlags: DISPFlagDefinition, unit: !68, retainedNodes: !81) // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !35) // CHECK:STDOUT: !80 = !DILocation(line: 9, column: 22, scope: !78) // CHECK:STDOUT: !81 = !{!79} @@ -418,12 +418,12 @@ fn F() { // CHECK:STDOUT: %.loc14_15.2.temp = alloca {}, align 1, !dbg !102 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc14_15.2.temp), !dbg !102 // CHECK:STDOUT: call void @_CCallMethod.Main.805a971dc5455081(ptr @C.val.loc14_15.6), !dbg !106 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !102 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr @C.val), !dbg !102 // CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !108 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !108 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !110 // CHECK:STDOUT: } @@ -468,7 +468,7 @@ fn F() { // CHECK:STDOUT: !102 = !DILocation(line: 14, column: 14, scope: !101) // CHECK:STDOUT: !106 = !DILocation(line: 15, column: 3, scope: !101) // CHECK:STDOUT: !107 = !DILocation(line: 13, column: 1, scope: !101) -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !88, line: 14, type: !37, spFlags: DISPFlagDefinition, unit: !89, retainedNodes: !111) +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !88, line: 14, type: !37, spFlags: DISPFlagDefinition, unit: !89, retainedNodes: !111) // CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !108, type: !35) // CHECK:STDOUT: !110 = !DILocation(line: 14, column: 14, scope: !108) // CHECK:STDOUT: !111 = !{!109} @@ -534,12 +534,12 @@ fn F() { // CHECK:STDOUT: %.loc10_15.2.temp = alloca {}, align 1, !dbg !131 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc10_15.2.temp), !dbg !131 // CHECK:STDOUT: call void @_CCallMethod.Main.96e0ef8a617a6362(ptr @C.val.loc10_15.6), !dbg !135 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !131 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr @C.val), !dbg !131 // CHECK:STDOUT: ret void, !dbg !136 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !137 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !137 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !139 // CHECK:STDOUT: } @@ -578,7 +578,7 @@ fn F() { // CHECK:STDOUT: !131 = !DILocation(line: 10, column: 14, scope: !130) // CHECK:STDOUT: !135 = !DILocation(line: 11, column: 3, scope: !130) // CHECK:STDOUT: !136 = !DILocation(line: 9, column: 1, scope: !130) -// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !128, line: 10, type: !37, spFlags: DISPFlagDefinition, unit: !129, retainedNodes: !140) +// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !128, line: 10, type: !37, spFlags: DISPFlagDefinition, unit: !129, retainedNodes: !140) // CHECK:STDOUT: !138 = !DILocalVariable(arg: 1, scope: !137, type: !35) // CHECK:STDOUT: !139 = !DILocation(line: 10, column: 14, scope: !137) // CHECK:STDOUT: !140 = !{!138} diff --git a/toolchain/lower/testdata/interop/cpp/class/export/class.carbon b/toolchain/lower/testdata/interop/cpp/class/export/class.carbon index 891746239800..ce5152743f21 100644 --- a/toolchain/lower/testdata/interop/cpp/class/export/class.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/export/class.carbon @@ -276,24 +276,24 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.LayoutA.Main"(ptr %self) #4 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.576418bb54cb7290:core.Destroy.Core"(ptr %self), !dbg !57 +// CHECK:STDOUT: call void @"_COp.5a318796badc8ab7:core.Destroy.Core"(ptr %self), !dbg !57 // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #5 !dbg !59 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #5 !dbg !59 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.21390e61793948a2:core.Destroy.Core"(ptr %self) #5 !dbg !63 { +// CHECK:STDOUT: define weak_odr void @"_COp.63f0d36eb067b612:core.Destroy.Core"(ptr %self) #5 !dbg !63 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.576418bb54cb7290:core.Destroy.Core"(ptr %self) #5 !dbg !67 { +// CHECK:STDOUT: define weak_odr void @"_COp.5a318796badc8ab7:core.Destroy.Core"(ptr %self) #5 !dbg !67 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !69 // CHECK:STDOUT: } @@ -309,18 +309,18 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.LayoutB.Main"(ptr %self) #4 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.1e05456dbecd0195:core.Destroy.Core"(ptr %self), !dbg !77 +// CHECK:STDOUT: call void @"_COp.98b9397038fd95a2:core.Destroy.Core"(ptr %self), !dbg !77 // CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ed90af642ee14836:core.Destroy.Core"(ptr %self) #5 !dbg !79 { +// CHECK:STDOUT: define weak_odr void @"_COp.680fc8e588bd03e0:core.Destroy.Core"(ptr %self) #5 !dbg !79 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e05456dbecd0195:core.Destroy.Core"(ptr %self) #5 !dbg !83 { +// CHECK:STDOUT: define weak_odr void @"_COp.98b9397038fd95a2:core.Destroy.Core"(ptr %self) #5 !dbg !83 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } @@ -336,18 +336,18 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.LayoutC.Main"(ptr %self) #4 !dbg !91 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.51e6fd9285cd1110:core.Destroy.Core"(ptr %self), !dbg !93 +// CHECK:STDOUT: call void @"_COp.bb6bd82e06513595:core.Destroy.Core"(ptr %self), !dbg !93 // CHECK:STDOUT: ret void, !dbg !93 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.16bee2ebebabb5ed:core.Destroy.Core"(ptr %self) #5 !dbg !95 { +// CHECK:STDOUT: define weak_odr void @"_COp.d1ce4198d9e72e02:core.Destroy.Core"(ptr %self) #5 !dbg !95 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.51e6fd9285cd1110:core.Destroy.Core"(ptr %self) #5 !dbg !99 { +// CHECK:STDOUT: define weak_odr void @"_COp.bb6bd82e06513595:core.Destroy.Core"(ptr %self) #5 !dbg !99 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !101 // CHECK:STDOUT: } @@ -397,15 +397,15 @@ fn G() { // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !50) // CHECK:STDOUT: !57 = !DILocation(line: 6, column: 1, scope: !55) // CHECK:STDOUT: !58 = !{!56} -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !48, line: 6, type: !54, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !62) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !48, line: 6, type: !54, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !62) // CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !37) // CHECK:STDOUT: !61 = !DILocation(line: 6, column: 1, scope: !59) // CHECK:STDOUT: !62 = !{!60} -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.21390e61793948a2:core.Destroy.Core", scope: null, file: !48, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !66) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.63f0d36eb067b612:core.Destroy.Core", scope: null, file: !48, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !66) // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !50) // CHECK:STDOUT: !65 = !DILocation(line: 6, column: 1, scope: !63) // CHECK:STDOUT: !66 = !{!64} -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Op", linkageName: "_COp.576418bb54cb7290:core.Destroy.Core", scope: null, file: !48, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !70) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5a318796badc8ab7:core.Destroy.Core", scope: null, file: !48, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !70) // CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !50) // CHECK:STDOUT: !69 = !DILocation(line: 6, column: 1, scope: !67) // CHECK:STDOUT: !70 = !{!68} @@ -417,11 +417,11 @@ fn G() { // CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !50) // CHECK:STDOUT: !77 = !DILocation(line: 11, column: 1, scope: !75) // CHECK:STDOUT: !78 = !{!76} -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ed90af642ee14836:core.Destroy.Core", scope: null, file: !48, line: 11, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !82) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.680fc8e588bd03e0:core.Destroy.Core", scope: null, file: !48, line: 11, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !82) // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !50) // CHECK:STDOUT: !81 = !DILocation(line: 11, column: 1, scope: !79) // CHECK:STDOUT: !82 = !{!80} -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e05456dbecd0195:core.Destroy.Core", scope: null, file: !48, line: 11, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !86) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.98b9397038fd95a2:core.Destroy.Core", scope: null, file: !48, line: 11, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !86) // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !50) // CHECK:STDOUT: !85 = !DILocation(line: 11, column: 1, scope: !83) // CHECK:STDOUT: !86 = !{!84} @@ -433,11 +433,11 @@ fn G() { // CHECK:STDOUT: !92 = !DILocalVariable(arg: 1, scope: !91, type: !50) // CHECK:STDOUT: !93 = !DILocation(line: 16, column: 1, scope: !91) // CHECK:STDOUT: !94 = !{!92} -// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Op", linkageName: "_COp.16bee2ebebabb5ed:core.Destroy.Core", scope: null, file: !48, line: 16, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !98) +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d1ce4198d9e72e02:core.Destroy.Core", scope: null, file: !48, line: 16, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !98) // CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !95, type: !50) // CHECK:STDOUT: !97 = !DILocation(line: 16, column: 1, scope: !95) // CHECK:STDOUT: !98 = !{!96} -// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51e6fd9285cd1110:core.Destroy.Core", scope: null, file: !48, line: 16, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !102) +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bb6bd82e06513595:core.Destroy.Core", scope: null, file: !48, line: 16, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !102) // CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !99, type: !50) // CHECK:STDOUT: !101 = !DILocation(line: 16, column: 1, scope: !99) // CHECK:STDOUT: !102 = !{!100} @@ -479,24 +479,24 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.FieldC.Main"(ptr %self) #1 !dbg !115 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.a5500aaf922cc288:core.Destroy.Core"(ptr %self), !dbg !117 +// CHECK:STDOUT: call void @"_COp.718874c3c75b803e:core.Destroy.Core"(ptr %self), !dbg !117 // CHECK:STDOUT: ret void, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #2 !dbg !119 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #2 !dbg !119 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #2 !dbg !123 { +// CHECK:STDOUT: define weak_odr void @"_COp.b4c762864cd9a02b:core.Destroy.Core"(ptr %self) #2 !dbg !123 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a5500aaf922cc288:core.Destroy.Core"(ptr %self) #2 !dbg !127 { +// CHECK:STDOUT: define weak_odr void @"_COp.718874c3c75b803e:core.Destroy.Core"(ptr %self) #2 !dbg !127 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !129 // CHECK:STDOUT: } @@ -510,7 +510,7 @@ fn G() { // CHECK:STDOUT: %.loc19_34.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %c.var, i32 0, i32 1, !dbg !133 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @FieldC.val.loc19_3, i64 8, i1 false), !dbg !132 // CHECK:STDOUT: call void @_Z1FRN6Carbon6FieldCE(ptr %c.var), !dbg !137 -// CHECK:STDOUT: call void @"_COp.a5500aaf922cc288:core.Destroy.Core"(ptr %c.var), !dbg !132 +// CHECK:STDOUT: call void @"_COp.718874c3c75b803e:core.Destroy.Core"(ptr %c.var), !dbg !132 // CHECK:STDOUT: ret void, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -561,15 +561,15 @@ fn G() { // CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !50) // CHECK:STDOUT: !117 = !DILocation(line: 6, column: 1, scope: !115) // CHECK:STDOUT: !118 = !{!116} -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !113, line: 6, type: !54, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !122) +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !113, line: 6, type: !54, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !122) // CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !37) // CHECK:STDOUT: !121 = !DILocation(line: 6, column: 1, scope: !119) // CHECK:STDOUT: !122 = !{!120} -// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !113, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !126) +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b4c762864cd9a02b:core.Destroy.Core", scope: null, file: !113, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !126) // CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !50) // CHECK:STDOUT: !125 = !DILocation(line: 6, column: 1, scope: !123) // CHECK:STDOUT: !126 = !{!124} -// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a5500aaf922cc288:core.Destroy.Core", scope: null, file: !113, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !130) +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Op", linkageName: "_COp.718874c3c75b803e:core.Destroy.Core", scope: null, file: !113, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !130) // CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !50) // CHECK:STDOUT: !129 = !DILocation(line: 6, column: 1, scope: !127) // CHECK:STDOUT: !130 = !{!128} diff --git a/toolchain/lower/testdata/interop/cpp/class/export/method.carbon b/toolchain/lower/testdata/interop/cpp/class/export/method.carbon index a2baf91320c5..3de63fd9883f 100644 --- a/toolchain/lower/testdata/interop/cpp/class/export/method.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/export/method.carbon @@ -119,12 +119,12 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #5 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self), !dbg !33 +// CHECK:STDOUT: call void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %self), !dbg !33 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #4 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %self) #4 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } @@ -162,7 +162,7 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !22) // CHECK:STDOUT: !33 = !DILocation(line: 5, column: 1, scope: !31) // CHECK:STDOUT: !34 = !{!32} -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !20, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !38) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5a23cc09585c55d2:core.Destroy.Core", scope: null, file: !20, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !38) // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !22) // CHECK:STDOUT: !37 = !DILocation(line: 5, column: 1, scope: !35) // CHECK:STDOUT: !38 = !{!36} @@ -242,12 +242,12 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.ArgsA.Main"(ptr %self) #5 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.433c867dbc0ac54b:core.Destroy.Core"(ptr %self), !dbg !76 +// CHECK:STDOUT: call void @"_COp.eefdfd667b52bf5b:core.Destroy.Core"(ptr %self), !dbg !76 // CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.433c867dbc0ac54b:core.Destroy.Core"(ptr %self) #4 !dbg !78 { +// CHECK:STDOUT: define weak_odr void @"_COp.eefdfd667b52bf5b:core.Destroy.Core"(ptr %self) #4 !dbg !78 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } @@ -311,7 +311,7 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !22) // CHECK:STDOUT: !76 = !DILocation(line: 5, column: 1, scope: !74) // CHECK:STDOUT: !77 = !{!75} -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.433c867dbc0ac54b:core.Destroy.Core", scope: null, file: !54, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !55, retainedNodes: !81) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eefdfd667b52bf5b:core.Destroy.Core", scope: null, file: !54, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !55, retainedNodes: !81) // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !22) // CHECK:STDOUT: !80 = !DILocation(line: 5, column: 1, scope: !78) // CHECK:STDOUT: !81 = !{!79} @@ -357,12 +357,12 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.StaticA.Main"(ptr %self) #3 !dbg !102 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.f6473606999de44c:core.Destroy.Core"(ptr %self), !dbg !104 +// CHECK:STDOUT: call void @"_COp.1be3804f96ff0532:core.Destroy.Core"(ptr %self), !dbg !104 // CHECK:STDOUT: ret void, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f6473606999de44c:core.Destroy.Core"(ptr %self) #2 !dbg !106 { +// CHECK:STDOUT: define weak_odr void @"_COp.1be3804f96ff0532:core.Destroy.Core"(ptr %self) #2 !dbg !106 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !108 // CHECK:STDOUT: } @@ -413,7 +413,7 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !22) // CHECK:STDOUT: !104 = !DILocation(line: 5, column: 1, scope: !102) // CHECK:STDOUT: !105 = !{!103} -// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f6473606999de44c:core.Destroy.Core", scope: null, file: !96, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !97, retainedNodes: !109) +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1be3804f96ff0532:core.Destroy.Core", scope: null, file: !96, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !97, retainedNodes: !109) // CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !22) // CHECK:STDOUT: !108 = !DILocation(line: 5, column: 1, scope: !106) // CHECK:STDOUT: !109 = !{!107} diff --git a/toolchain/lower/testdata/interop/cpp/class/import/conversion.carbon b/toolchain/lower/testdata/interop/cpp/class/import/conversion.carbon index 66da4fd968bf..62b1010eef55 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/conversion.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/conversion.carbon @@ -299,7 +299,7 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !100 // CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK4IntBcviEv.carbon_thunk._(ptr %b), !dbg !100 // CHECK:STDOUT: store i32 %__carbon_thunk.call, ptr %a.var, align 4, !dbg !100 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !100 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %a.var), !dbg !100 // CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -314,7 +314,7 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !105 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !105 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } @@ -365,7 +365,7 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: !100 = !DILocation(line: 12, column: 3, scope: !97) // CHECK:STDOUT: !103 = !DILocation(line: 11, column: 1, scope: !97) // CHECK:STDOUT: !104 = !{!98} -// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !91, line: 12, type: !96, spFlags: DISPFlagDefinition, unit: !92, retainedNodes: !108) +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !91, line: 12, type: !96, spFlags: DISPFlagDefinition, unit: !92, retainedNodes: !108) // CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !105, type: !20) // CHECK:STDOUT: !107 = !DILocation(line: 12, column: 3, scope: !105) // CHECK:STDOUT: !108 = !{!106} diff --git a/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon b/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon index f7436efc69e5..595b37868f3c 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon @@ -114,7 +114,7 @@ fn DoThing() { // CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTVN6Carbon7DerivedE, i32 0, i32 0, i32 2), ptr %.loc31_44.9.vptr, align 8, !dbg !62 // CHECK:STDOUT: %.loc32_11.3.base = getelementptr inbounds nuw [16 x i8], ptr %d.var, i32 0, i32 0, !dbg !66 // CHECK:STDOUT: call void @_Z3UseR4Base(ptr %.loc32_11.3.base), !dbg !67 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %d.var), !dbg !61 +// CHECK:STDOUT: call void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %d.var), !dbg !61 // CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -131,18 +131,18 @@ fn DoThing() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.Derived.Main"(ptr %self) #3 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self), !dbg !71 +// CHECK:STDOUT: call void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %self), !dbg !71 // CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a4cea16271ab4a06:core.Destroy.Core"(ptr %self) #2 !dbg !73 { +// CHECK:STDOUT: define weak_odr void @"_COp.0a0b9df20a60c6f6:core.Destroy.Core"(ptr %self) #2 !dbg !73 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #2 !dbg !77 { +// CHECK:STDOUT: define weak_odr void @"_COp.b25525d21a9bd472:core.Destroy.Core"(ptr %self) #2 !dbg !77 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } @@ -212,7 +212,7 @@ fn DoThing() { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_ZN11FurtherBase17further_base_funcEv, { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.b25525d21a9bd472:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress noinline nounwind optnone uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -264,11 +264,11 @@ fn DoThing() { // CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !40) // CHECK:STDOUT: !71 = !DILocation(line: 22, column: 1, scope: !69) // CHECK:STDOUT: !72 = !{!70} -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a4cea16271ab4a06:core.Destroy.Core", scope: null, file: !37, line: 22, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !76) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0a0b9df20a60c6f6:core.Destroy.Core", scope: null, file: !37, line: 22, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !76) // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !40) // CHECK:STDOUT: !75 = !DILocation(line: 22, column: 1, scope: !73) // CHECK:STDOUT: !76 = !{!74} -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !37, line: 22, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !80) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b25525d21a9bd472:core.Destroy.Core", scope: null, file: !37, line: 22, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !80) // CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !77, type: !40) // CHECK:STDOUT: !79 = !DILocation(line: 22, column: 1, scope: !77) // CHECK:STDOUT: !80 = !{!78} diff --git a/toolchain/lower/testdata/interop/cpp/class/import/method.carbon b/toolchain/lower/testdata/interop/cpp/class/import/method.carbon index 94e4f4a039f9..d21cde3b9334 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/method.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/method.carbon @@ -334,10 +334,10 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: %.loc8_14.3.temp = alloca i8, align 1, !dbg !82 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_14.3.temp), !dbg !80 // CHECK:STDOUT: call void @_ZNK9NeedThunk8ImplicitEa.carbon_thunk.__(ptr %n, ptr @int_1.f1e), !dbg !79 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr @int_1.f1e), !dbg !80 +// CHECK:STDOUT: call void @"_COp.4954785a8b134801:core.Destroy.Core"(ptr @int_1.f1e), !dbg !80 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_14.3.temp), !dbg !82 // CHECK:STDOUT: call void @_ZNH9NeedThunk8ExplicitES_a.carbon_thunk.__(ptr %n, ptr @int_1.f1e), !dbg !81 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr @int_1.f1e), !dbg !82 +// CHECK:STDOUT: call void @"_COp.4954785a8b134801:core.Destroy.Core"(ptr @int_1.f1e), !dbg !82 // CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -356,7 +356,7 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %self) #0 !dbg !85 { +// CHECK:STDOUT: define weak_odr void @"_COp.4954785a8b134801:core.Destroy.Core"(ptr %self) #0 !dbg !85 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } @@ -384,7 +384,7 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: declare void @_ZNH9NeedThunk8ExplicitES_a(i8 noundef signext) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.136cbc434fe80552:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.4954785a8b134801:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -424,7 +424,7 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: !82 = !DILocation(line: 8, column: 14, scope: !76) // CHECK:STDOUT: !83 = !DILocation(line: 6, column: 1, scope: !76) // CHECK:STDOUT: !84 = !{!77} -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.136cbc434fe80552:core.Destroy.Core", scope: null, file: !69, line: 7, type: !75, spFlags: DISPFlagDefinition, unit: !70, retainedNodes: !88) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4954785a8b134801:core.Destroy.Core", scope: null, file: !69, line: 7, type: !75, spFlags: DISPFlagDefinition, unit: !70, retainedNodes: !88) // CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !71) // CHECK:STDOUT: !87 = !DILocation(line: 7, column: 14, scope: !85) // CHECK:STDOUT: !88 = !{!86} diff --git a/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon b/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon index 13d79a01bbe2..664c64c29643 100644 --- a/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon @@ -216,7 +216,7 @@ void delete_new_Base() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.Final.Main"(ptr %self) #6 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.44c76b7e3aba5fc1:core.Destroy.Core"(ptr %self), !dbg !44 +// CHECK:STDOUT: call void @"_COp.28387b086eba9957:core.Destroy.Core"(ptr %self), !dbg !44 // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -224,13 +224,13 @@ void delete_new_Base() { // CHECK:STDOUT: declare void @_ZN1AD1Ev(ptr noundef nonnull align 8 dead_on_return(8) dereferenceable(8)) unnamed_addr #7 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.0f3d92058986cf00:core.Destroy.Core"(ptr %self) #8 !dbg !46 { +// CHECK:STDOUT: define weak_odr void @"_COp.e9cc9e95545cc62f:core.Destroy.Core"(ptr %self) #8 !dbg !46 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.44c76b7e3aba5fc1:core.Destroy.Core"(ptr %self) #8 !dbg !50 { +// CHECK:STDOUT: define weak_odr void @"_COp.28387b086eba9957:core.Destroy.Core"(ptr %self) #8 !dbg !50 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } @@ -245,12 +245,12 @@ void delete_new_Base() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.Base.Main"(ptr %self) #6 !dbg !58 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self), !dbg !60 +// CHECK:STDOUT: call void @"_COp.294df737cd074d60:core.Destroy.Core"(ptr %self), !dbg !60 // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #8 !dbg !62 { +// CHECK:STDOUT: define weak_odr void @"_COp.294df737cd074d60:core.Destroy.Core"(ptr %self) #8 !dbg !62 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } @@ -385,11 +385,11 @@ void delete_new_Base() { // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !29) // CHECK:STDOUT: !44 = !DILocation(line: 12, column: 1, scope: !42) // CHECK:STDOUT: !45 = !{!43} -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0f3d92058986cf00:core.Destroy.Core", scope: null, file: !27, line: 12, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !49) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e9cc9e95545cc62f:core.Destroy.Core", scope: null, file: !27, line: 12, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !49) // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !29) // CHECK:STDOUT: !48 = !DILocation(line: 12, column: 1, scope: !46) // CHECK:STDOUT: !49 = !{!47} -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.44c76b7e3aba5fc1:core.Destroy.Core", scope: null, file: !27, line: 12, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !53) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.28387b086eba9957:core.Destroy.Core", scope: null, file: !27, line: 12, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !53) // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !29) // CHECK:STDOUT: !52 = !DILocation(line: 12, column: 1, scope: !50) // CHECK:STDOUT: !53 = !{!51} @@ -401,7 +401,7 @@ void delete_new_Base() { // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !29) // CHECK:STDOUT: !60 = !DILocation(line: 17, column: 1, scope: !58) // CHECK:STDOUT: !61 = !{!59} -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !27, line: 17, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !65) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.294df737cd074d60:core.Destroy.Core", scope: null, file: !27, line: 17, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !65) // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !29) // CHECK:STDOUT: !64 = !DILocation(line: 17, column: 1, scope: !62) // CHECK:STDOUT: !65 = !{!63} diff --git a/toolchain/lower/testdata/interop/cpp/enum.carbon b/toolchain/lower/testdata/interop/cpp/enum.carbon index a0d987f3520a..5ec3cd71a707 100644 --- a/toolchain/lower/testdata/interop/cpp/enum.carbon +++ b/toolchain/lower/testdata/interop/cpp/enum.carbon @@ -371,14 +371,14 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CRuntime.Main(i32 %a, i32 %b) #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Op.call.loc14 = and i32 %a, %b, !dbg !79 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc14), !dbg !81 -// CHECK:STDOUT: %Op.call.loc15 = or i32 %a, %b, !dbg !82 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc15), !dbg !84 -// CHECK:STDOUT: %Op.call.loc16 = xor i32 %a, %b, !dbg !85 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc16), !dbg !87 -// CHECK:STDOUT: %Op.call.loc20 = xor i32 -1, %a, !dbg !89 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc20), !dbg !90 +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.call = and i32 %a, %b, !dbg !79 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %BitAndWith.WithSelf.Op.call), !dbg !81 +// CHECK:STDOUT: %BitOrWith.WithSelf.Op.call = or i32 %a, %b, !dbg !82 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %BitOrWith.WithSelf.Op.call), !dbg !84 +// CHECK:STDOUT: %BitXorWith.WithSelf.Op.call = xor i32 %a, %b, !dbg !85 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %BitXorWith.WithSelf.Op.call), !dbg !87 +// CHECK:STDOUT: %BitComplement.WithSelf.Op.call = xor i32 -1, %a, !dbg !89 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %BitComplement.WithSelf.Op.call), !dbg !90 // CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -438,19 +438,19 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i1 @_CCompare.Main(i16 %a, i16 %b) #0 !dbg !97 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Equal.call = icmp eq i16 %a, %b, !dbg !104 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !106 +// CHECK:STDOUT: %OrderedWith.WithSelf.Equal.call = icmp eq i16 %a, %b, !dbg !104 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.Equal.call, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i1 @_CCallCompareGeneric.Main(i16 %a, i16 %b) #0 !dbg !108 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.80c3fc0239809458(i16 %a, i16 %b), !dbg !117 +// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.7602ebbc958eec83(i16 %a, i16 %b), !dbg !117 // CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.80c3fc0239809458(i16 %x, i16 %y) #0 !dbg !120 { +// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.7602ebbc958eec83(i16 %x, i16 %y) #0 !dbg !120 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %EqWith.WithSelf.Equal.call = icmp eq i16 %x, %y, !dbg !127 // CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !129 @@ -490,7 +490,7 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: !117 = !DILocation(line: 15, column: 10, scope: !108) // CHECK:STDOUT: !118 = !DILocation(line: 15, column: 3, scope: !108) // CHECK:STDOUT: !119 = !{!109, !110} -// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.80c3fc0239809458", scope: null, file: !93, line: 10, type: !96, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !130) +// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.7602ebbc958eec83", scope: null, file: !93, line: 10, type: !96, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !130) // CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !120, type: !6) // CHECK:STDOUT: !122 = !DILocalVariable(arg: 2, scope: !120, type: !6) // CHECK:STDOUT: !127 = !DILocation(line: 11, column: 10, scope: !120) @@ -510,8 +510,8 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_15.1.temp), !dbg !149 // CHECK:STDOUT: call void @_ZNK13ConvertToEnumcvN1C1EEEv.carbon_thunk._(ptr %b, ptr %.loc18_15.1.temp), !dbg !149 // CHECK:STDOUT: %.loc18_15.5 = load i16, ptr %.loc18_15.1.temp, align 2, !dbg !149 -// CHECK:STDOUT: %Equal.call = icmp eq i16 %a, %.loc18_15.5, !dbg !148 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !150 +// CHECK:STDOUT: %OrderedWith.WithSelf.Equal.call = icmp eq i16 %a, %.loc18_15.5, !dbg !148 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.Equal.call, !dbg !150 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -532,8 +532,8 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: define i1 @_CCompare2.Main(i32 %a, ptr %b) #0 !dbg !152 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr %b), !dbg !160 -// CHECK:STDOUT: %Equal.call = icmp eq i32 %a, %__carbon_thunk.call, !dbg !159 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !161 +// CHECK:STDOUT: %OrderedWith.WithSelf.Equal.call = icmp eq i32 %a, %__carbon_thunk.call, !dbg !159 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.Equal.call, !dbg !161 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -553,8 +553,8 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_15.1.temp), !dbg !171 // CHECK:STDOUT: call void @_ZNK14ConvertToEnum2cvN1C1EEEv.carbon_thunk._(ptr %b, ptr %.loc26_15.1.temp), !dbg !171 // CHECK:STDOUT: %.loc26_15.5 = load i16, ptr %.loc26_15.1.temp, align 2, !dbg !171 -// CHECK:STDOUT: %Equal.call = icmp eq i16 %a, %.loc26_15.5, !dbg !170 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !172 +// CHECK:STDOUT: %OrderedWith.WithSelf.Equal.call = icmp eq i16 %a, %.loc26_15.5, !dbg !170 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.Equal.call, !dbg !172 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -574,105 +574,105 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i1 @_CCallCompareGeneric.Main(i16 %a, ptr %b) #0 !dbg !174 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.215a23369ed4d589(i16 %a, ptr %b), !dbg !183 +// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.356c7bb457b5b49b(i16 %a, ptr %b), !dbg !183 // CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !184 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !186 { +// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:OrderedWith.Core"(i16 %self, ptr %other) #2 !dbg !186 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !189 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !189 // CHECK:STDOUT: call void @_ZNK13ConvertToEnumcvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !189 // CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !189 -// CHECK:STDOUT: %Equal.call = icmp eq i16 %self, %.8, !dbg !189 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !189 +// CHECK:STDOUT: %OrderedWith.WithSelf.Equal.call = icmp eq i16 %self, %.8, !dbg !189 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.Equal.call, !dbg !189 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !191 { +// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.83b9626e83cf3dcc.Core:OrderedWith.Core"(i16 %self, ptr %other) #2 !dbg !191 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !194 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !194 // CHECK:STDOUT: call void @_ZNK13ConvertToEnumcvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !194 // CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !194 -// CHECK:STDOUT: %NotEqual.call = icmp ne i16 %self, %.8, !dbg !194 -// CHECK:STDOUT: ret i1 %NotEqual.call, !dbg !194 +// CHECK:STDOUT: %OrderedWith.WithSelf.NotEqual.call = icmp ne i16 %self, %.8, !dbg !194 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.NotEqual.call, !dbg !194 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i1 @_CCallCompareGeneric2.Main(i32 %a, ptr %b) #0 !dbg !196 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.a5489e454367d917(i32 %a, ptr %b), !dbg !205 +// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.4512c7023c79a313(i32 %a, ptr %b), !dbg !205 // CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !206 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed"(i32 %self, ptr %other) #2 !dbg !208 { +// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.e8fe48de943d9652.Core:OrderedWith.Core"(i32 %self, ptr %other) #2 !dbg !208 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr %other), !dbg !211 -// CHECK:STDOUT: %Equal.call = icmp eq i32 %self, %__carbon_thunk.call, !dbg !211 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !211 +// CHECK:STDOUT: %OrderedWith.WithSelf.Equal.call = icmp eq i32 %self, %__carbon_thunk.call, !dbg !211 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.Equal.call, !dbg !211 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed"(i32 %self, ptr %other) #2 !dbg !213 { +// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.e8fe48de943d9652.Core:OrderedWith.Core"(i32 %self, ptr %other) #2 !dbg !213 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr %other), !dbg !216 -// CHECK:STDOUT: %NotEqual.call = icmp ne i32 %self, %__carbon_thunk.call, !dbg !216 -// CHECK:STDOUT: ret i1 %NotEqual.call, !dbg !216 +// CHECK:STDOUT: %OrderedWith.WithSelf.NotEqual.call = icmp ne i32 %self, %__carbon_thunk.call, !dbg !216 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.NotEqual.call, !dbg !216 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i1 @_CCallCompareGeneric3.Main(i16 %a, ptr %b) #0 !dbg !218 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.64b737572447efad(i16 %a, ptr %b), !dbg !227 +// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.070a42571d1942e2(i16 %a, ptr %b), !dbg !227 // CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !228 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.a294139a6615e163.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !230 { +// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.a294139a6615e163.Core:OrderedWith.Core"(i16 %self, ptr %other) #2 !dbg !230 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !233 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !233 // CHECK:STDOUT: call void @_ZNK14ConvertToEnum2cvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !233 // CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !233 -// CHECK:STDOUT: %Equal.call = icmp eq i16 %self, %.8, !dbg !233 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !233 +// CHECK:STDOUT: %OrderedWith.WithSelf.Equal.call = icmp eq i16 %self, %.8, !dbg !233 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.Equal.call, !dbg !233 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.a294139a6615e163.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !235 { +// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.a294139a6615e163.Core:OrderedWith.Core"(i16 %self, ptr %other) #2 !dbg !235 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !238 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !238 // CHECK:STDOUT: call void @_ZNK14ConvertToEnum2cvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !238 // CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !238 -// CHECK:STDOUT: %NotEqual.call = icmp ne i16 %self, %.8, !dbg !238 -// CHECK:STDOUT: ret i1 %NotEqual.call, !dbg !238 +// CHECK:STDOUT: %OrderedWith.WithSelf.NotEqual.call = icmp ne i16 %self, %.8, !dbg !238 +// CHECK:STDOUT: ret i1 %OrderedWith.WithSelf.NotEqual.call, !dbg !238 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.215a23369ed4d589(i16 %x, ptr %y) #0 !dbg !240 { +// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.356c7bb457b5b49b(i16 %x, ptr %y) #0 !dbg !240 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed"(i16 %x, ptr %y), !dbg !247 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:OrderedWith.Core"(i16 %x, ptr %y), !dbg !247 // CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !249 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.a5489e454367d917(i32 %x, ptr %y) #0 !dbg !251 { +// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.4512c7023c79a313(i32 %x, ptr %y) #0 !dbg !251 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed"(i32 %x, ptr %y), !dbg !258 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.e8fe48de943d9652.Core:OrderedWith.Core"(i32 %x, ptr %y), !dbg !258 // CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !260 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.64b737572447efad(i16 %x, ptr %y) #0 !dbg !262 { +// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.070a42571d1942e2(i16 %x, ptr %y) #0 !dbg !262 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.a294139a6615e163.Core:enclosed"(i16 %x, ptr %y), !dbg !269 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.a294139a6615e163.Core:OrderedWith.Core"(i16 %x, ptr %y), !dbg !269 // CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !271 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -745,12 +745,12 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: !183 = !DILocation(line: 36, column: 10, scope: !174) // CHECK:STDOUT: !184 = !DILocation(line: 36, column: 3, scope: !174) // CHECK:STDOUT: !185 = !{!175, !176} -// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !190) +// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:OrderedWith.Core", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !190) // CHECK:STDOUT: !187 = !DILocalVariable(arg: 1, scope: !186, type: !6) // CHECK:STDOUT: !188 = !DILocalVariable(arg: 2, scope: !186, type: !9) // CHECK:STDOUT: !189 = !DILocation(line: 0, scope: !186) // CHECK:STDOUT: !190 = !{!187, !188} -// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !195) +// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.83b9626e83cf3dcc.Core:OrderedWith.Core", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !195) // CHECK:STDOUT: !192 = !DILocalVariable(arg: 1, scope: !191, type: !6) // CHECK:STDOUT: !193 = !DILocalVariable(arg: 2, scope: !191, type: !9) // CHECK:STDOUT: !194 = !DILocation(line: 0, scope: !191) @@ -761,12 +761,12 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: !205 = !DILocation(line: 40, column: 10, scope: !196) // CHECK:STDOUT: !206 = !DILocation(line: 40, column: 3, scope: !196) // CHECK:STDOUT: !207 = !{!197, !198} -// CHECK:STDOUT: !208 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed", scope: null, file: !131, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !212) +// CHECK:STDOUT: !208 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.e8fe48de943d9652.Core:OrderedWith.Core", scope: null, file: !131, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !212) // CHECK:STDOUT: !209 = !DILocalVariable(arg: 1, scope: !208, type: !63) // CHECK:STDOUT: !210 = !DILocalVariable(arg: 2, scope: !208, type: !9) // CHECK:STDOUT: !211 = !DILocation(line: 0, scope: !208) // CHECK:STDOUT: !212 = !{!209, !210} -// CHECK:STDOUT: !213 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed", scope: null, file: !131, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !217) +// CHECK:STDOUT: !213 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.e8fe48de943d9652.Core:OrderedWith.Core", scope: null, file: !131, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !217) // CHECK:STDOUT: !214 = !DILocalVariable(arg: 1, scope: !213, type: !63) // CHECK:STDOUT: !215 = !DILocalVariable(arg: 2, scope: !213, type: !9) // CHECK:STDOUT: !216 = !DILocation(line: 0, scope: !213) @@ -777,29 +777,29 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: !227 = !DILocation(line: 44, column: 10, scope: !218) // CHECK:STDOUT: !228 = !DILocation(line: 44, column: 3, scope: !218) // CHECK:STDOUT: !229 = !{!219, !220} -// CHECK:STDOUT: !230 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.a294139a6615e163.Core:enclosed", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !234) +// CHECK:STDOUT: !230 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.a294139a6615e163.Core:OrderedWith.Core", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !234) // CHECK:STDOUT: !231 = !DILocalVariable(arg: 1, scope: !230, type: !6) // CHECK:STDOUT: !232 = !DILocalVariable(arg: 2, scope: !230, type: !9) // CHECK:STDOUT: !233 = !DILocation(line: 0, scope: !230) // CHECK:STDOUT: !234 = !{!231, !232} -// CHECK:STDOUT: !235 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.a294139a6615e163.Core:enclosed", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !239) +// CHECK:STDOUT: !235 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.a294139a6615e163.Core:OrderedWith.Core", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !239) // CHECK:STDOUT: !236 = !DILocalVariable(arg: 1, scope: !235, type: !6) // CHECK:STDOUT: !237 = !DILocalVariable(arg: 2, scope: !235, type: !9) // CHECK:STDOUT: !238 = !DILocation(line: 0, scope: !235) // CHECK:STDOUT: !239 = !{!236, !237} -// CHECK:STDOUT: !240 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.215a23369ed4d589", scope: null, file: !131, line: 29, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !250) +// CHECK:STDOUT: !240 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.356c7bb457b5b49b", scope: null, file: !131, line: 29, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !250) // CHECK:STDOUT: !241 = !DILocalVariable(arg: 1, scope: !240, type: !6) // CHECK:STDOUT: !242 = !DILocalVariable(arg: 2, scope: !240, type: !9) // CHECK:STDOUT: !247 = !DILocation(line: 30, column: 10, scope: !240) // CHECK:STDOUT: !249 = !DILocation(line: 30, column: 3, scope: !240) // CHECK:STDOUT: !250 = !{!241, !242} -// CHECK:STDOUT: !251 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.a5489e454367d917", scope: null, file: !131, line: 29, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !261) +// CHECK:STDOUT: !251 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.4512c7023c79a313", scope: null, file: !131, line: 29, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !261) // CHECK:STDOUT: !252 = !DILocalVariable(arg: 1, scope: !251, type: !63) // CHECK:STDOUT: !253 = !DILocalVariable(arg: 2, scope: !251, type: !9) // CHECK:STDOUT: !258 = !DILocation(line: 30, column: 10, scope: !251) // CHECK:STDOUT: !260 = !DILocation(line: 30, column: 3, scope: !251) // CHECK:STDOUT: !261 = !{!252, !253} -// CHECK:STDOUT: !262 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.64b737572447efad", scope: null, file: !131, line: 29, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !272) +// CHECK:STDOUT: !262 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.070a42571d1942e2", scope: null, file: !131, line: 29, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !272) // CHECK:STDOUT: !263 = !DILocalVariable(arg: 1, scope: !262, type: !6) // CHECK:STDOUT: !264 = !DILocalVariable(arg: 2, scope: !262, type: !9) // CHECK:STDOUT: !269 = !DILocation(line: 30, column: 10, scope: !262) diff --git a/toolchain/lower/testdata/interop/cpp/function/export/constructor.carbon b/toolchain/lower/testdata/interop/cpp/function/export/constructor.carbon index ebb43f5b1e20..d99c77746d24 100644 --- a/toolchain/lower/testdata/interop/cpp/function/export/constructor.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/export/constructor.carbon @@ -79,12 +79,12 @@ void f() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.OneArg.Main"(ptr %self) #4 !dbg !15 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.50eaa49c486ec4e2:core.Destroy.Core"(ptr %self), !dbg !17 +// CHECK:STDOUT: call void @"_COp.7040ef4e2429d520:core.Destroy.Core"(ptr %self), !dbg !17 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.50eaa49c486ec4e2:core.Destroy.Core"(ptr %self) #5 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.7040ef4e2429d520:core.Destroy.Core"(ptr %self) #5 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } @@ -122,7 +122,7 @@ void f() { // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !15, type: !8) // CHECK:STDOUT: !17 = !DILocation(line: 5, column: 1, scope: !15) // CHECK:STDOUT: !18 = !{!16} -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.50eaa49c486ec4e2:core.Destroy.Core", scope: null, file: !5, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !6, retainedNodes: !22) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7040ef4e2429d520:core.Destroy.Core", scope: null, file: !5, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !6, retainedNodes: !22) // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !8) // CHECK:STDOUT: !21 = !DILocation(line: 5, column: 1, scope: !19) // CHECK:STDOUT: !22 = !{!20} diff --git a/toolchain/lower/testdata/interop/cpp/function/export/generic.carbon b/toolchain/lower/testdata/interop/cpp/function/export/generic.carbon index 0441ab51a243..0e56fb03e83c 100644 --- a/toolchain/lower/testdata/interop/cpp/function/export/generic.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/export/generic.carbon @@ -184,12 +184,12 @@ fn Run() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #5 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self), !dbg !30 +// CHECK:STDOUT: call void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %self), !dbg !30 // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #4 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %self) #4 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } @@ -197,12 +197,12 @@ fn Run() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.B.Main"(ptr %self) #5 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self), !dbg !38 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self), !dbg !38 // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #4 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self) #4 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } @@ -281,7 +281,7 @@ fn Run() { // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !10) // CHECK:STDOUT: !30 = !DILocation(line: 8, column: 1, scope: !28) // CHECK:STDOUT: !31 = !{!29} -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !8, line: 8, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !35) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5a23cc09585c55d2:core.Destroy.Core", scope: null, file: !8, line: 8, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !35) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !10) // CHECK:STDOUT: !34 = !DILocation(line: 8, column: 1, scope: !32) // CHECK:STDOUT: !35 = !{!33} @@ -289,7 +289,7 @@ fn Run() { // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !10) // CHECK:STDOUT: !38 = !DILocation(line: 13, column: 1, scope: !36) // CHECK:STDOUT: !39 = !{!37} -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !8, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8c4b83ecd900f1ea:core.Destroy.Core", scope: null, file: !8, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !10) // CHECK:STDOUT: !42 = !DILocation(line: 13, column: 1, scope: !40) // CHECK:STDOUT: !43 = !{!41} diff --git a/toolchain/lower/testdata/interop/cpp/function/import/function_decl.carbon b/toolchain/lower/testdata/interop/cpp/function/import/function_decl.carbon index 351c2018ecc9..4a462ff7ec77 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/function_decl.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/function_decl.carbon @@ -412,7 +412,7 @@ fn MyF() -> i32 { // CHECK:STDOUT: %SimpleReturnValue.call = call i32 @_Z17SimpleReturnValueii(i32 3, i32 4), !dbg !80 // CHECK:STDOUT: store i32 %SimpleReturnValue.call, ptr %value.var, align 4, !dbg !79 // CHECK:STDOUT: %.loc14 = load i32, ptr %value.var, align 4, !dbg !81 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %value.var), !dbg !74 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %value.var), !dbg !74 // CHECK:STDOUT: ret i32 %.loc14, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -455,7 +455,7 @@ fn MyF() -> i32 { // CHECK:STDOUT: declare noundef i32 @_Z17SimpleReturnValueii(i32 noundef, i32 noundef) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } @@ -505,7 +505,7 @@ fn MyF() -> i32 { // CHECK:STDOUT: !80 = !DILocation(line: 13, column: 11, scope: !68) // CHECK:STDOUT: !81 = !DILocation(line: 14, column: 10, scope: !68) // CHECK:STDOUT: !82 = !DILocation(line: 14, column: 3, scope: !68) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !55, line: 11, type: !61, spFlags: DISPFlagDefinition, unit: !56, retainedNodes: !86) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !55, line: 11, type: !61, spFlags: DISPFlagDefinition, unit: !56, retainedNodes: !86) // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !57) // CHECK:STDOUT: !85 = !DILocation(line: 11, column: 3, scope: !83) // CHECK:STDOUT: !86 = !{!84} diff --git a/toolchain/lower/testdata/interop/cpp/function/import/import_inline.carbon b/toolchain/lower/testdata/interop/cpp/function/import/import_inline.carbon index b2a905e564cd..d3bf740d0c9a 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/import_inline.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/import_inline.carbon @@ -48,12 +48,12 @@ fn Call() -> i32 { // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !38 // CHECK:STDOUT: call void @_Z1FPi(ptr %n.var), !dbg !42 // CHECK:STDOUT: %.loc24 = load i32, ptr %n.var, align 4, !dbg !43 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !38 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !38 // CHECK:STDOUT: ret i32 %.loc24, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #1 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #1 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } @@ -90,7 +90,7 @@ fn Call() -> i32 { // CHECK:STDOUT: !42 = !DILocation(line: 23, column: 3, scope: !35) // CHECK:STDOUT: !43 = !DILocation(line: 24, column: 10, scope: !35) // CHECK:STDOUT: !44 = !DILocation(line: 24, column: 3, scope: !35) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !25, line: 22, type: !34, spFlags: DISPFlagDefinition, unit: !26, retainedNodes: !48) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !25, line: 22, type: !34, spFlags: DISPFlagDefinition, unit: !26, retainedNodes: !48) // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !27) // CHECK:STDOUT: !47 = !DILocation(line: 22, column: 3, scope: !45) // CHECK:STDOUT: !48 = !{!46} diff --git a/toolchain/lower/testdata/interop/cpp/function/import/parameters.carbon b/toolchain/lower/testdata/interop/cpp/function/import/parameters.carbon index 5102ade4d56f..dcce6ff9c078 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/parameters.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/parameters.carbon @@ -131,13 +131,13 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_19.3.temp), !dbg !62 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_22.3.temp), !dbg !63 // CHECK:STDOUT: call void @_Z11pass_signedasil.carbon_thunk.____(ptr @int_1.f1e, ptr @int_2.5c2, i32 3, i64 4), !dbg !64 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr @int_2.5c2), !dbg !63 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr @int_1.f1e), !dbg !62 +// CHECK:STDOUT: call void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr @int_2.5c2), !dbg !63 +// CHECK:STDOUT: call void @"_COp.4954785a8b134801:core.Destroy.Core"(ptr @int_1.f1e), !dbg !62 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.3.temp), !dbg !65 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_24.3.temp), !dbg !66 // CHECK:STDOUT: call void @_Z13pass_unsignedhtjm.carbon_thunk.____(ptr @int_1.067, ptr @int_2.ec3, i32 3, i64 4), !dbg !67 -// CHECK:STDOUT: call void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr @int_2.ec3), !dbg !66 -// CHECK:STDOUT: call void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr @int_1.067), !dbg !65 +// CHECK:STDOUT: call void @"_COp.3bc9e5dacf328f74:core.Destroy.Core"(ptr @int_2.ec3), !dbg !66 +// CHECK:STDOUT: call void @"_COp.be60742f00557eec:core.Destroy.Core"(ptr @int_1.067), !dbg !65 // CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -163,13 +163,13 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %self) #0 !dbg !69 { +// CHECK:STDOUT: define weak_odr void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %self) #0 !dbg !69 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %self) #0 !dbg !73 { +// CHECK:STDOUT: define weak_odr void @"_COp.4954785a8b134801:core.Destroy.Core"(ptr %self) #0 !dbg !73 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } @@ -196,13 +196,13 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %self) #0 !dbg !77 { +// CHECK:STDOUT: define weak_odr void @"_COp.3bc9e5dacf328f74:core.Destroy.Core"(ptr %self) #0 !dbg !77 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: define weak_odr void @"_COp.be60742f00557eec:core.Destroy.Core"(ptr %self) #0 !dbg !81 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } @@ -219,22 +219,22 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_18.1.temp), !dbg !90 // CHECK:STDOUT: store i16 %a, ptr %.loc17_18.1.temp, align 2, !dbg !90 // CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc17_18.1.temp), !dbg !91 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc17_18.1.temp), !dbg !90 +// CHECK:STDOUT: call void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %.loc17_18.1.temp), !dbg !90 // CHECK:STDOUT: %.loc18_18.2 = load i16, ptr %b, align 2, !dbg !93 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_18.3.temp), !dbg !93 // CHECK:STDOUT: store i16 %.loc18_18.2, ptr %.loc18_18.3.temp, align 2, !dbg !93 // CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc18_18.3.temp), !dbg !94 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc18_18.3.temp), !dbg !93 +// CHECK:STDOUT: call void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %.loc18_18.3.temp), !dbg !93 // CHECK:STDOUT: %.loc19_18.1 = load i16, ptr @_Cc.Main, align 2, !dbg !95 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_18.2.temp), !dbg !95 // CHECK:STDOUT: store i16 %.loc19_18.1, ptr %.loc19_18.2.temp, align 2, !dbg !95 // CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc19_18.2.temp), !dbg !96 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc19_18.2.temp), !dbg !95 +// CHECK:STDOUT: call void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %.loc19_18.2.temp), !dbg !95 // CHECK:STDOUT: %MakeShort.call = call i16 @_CMakeShort.Main(), !dbg !97 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_28.3.temp), !dbg !97 // CHECK:STDOUT: store i16 %MakeShort.call, ptr %.loc20_28.3.temp, align 2, !dbg !97 // CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc20_28.3.temp), !dbg !98 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc20_28.3.temp), !dbg !97 +// CHECK:STDOUT: call void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %.loc20_28.3.temp), !dbg !97 // CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -307,19 +307,19 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: !66 = !DILocation(line: 9, column: 24, scope: !61) // CHECK:STDOUT: !67 = !DILocation(line: 9, column: 3, scope: !61) // CHECK:STDOUT: !68 = !DILocation(line: 6, column: 1, scope: !61) -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.91f16365ca65525e:core.Destroy.Core", scope: null, file: !32, line: 7, type: !46, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !72) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d57cb32fcf12ec07:core.Destroy.Core", scope: null, file: !32, line: 7, type: !46, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !72) // CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !37) // CHECK:STDOUT: !71 = !DILocation(line: 7, column: 22, scope: !69) // CHECK:STDOUT: !72 = !{!70} -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.136cbc434fe80552:core.Destroy.Core", scope: null, file: !32, line: 7, type: !48, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !76) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4954785a8b134801:core.Destroy.Core", scope: null, file: !32, line: 7, type: !48, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !76) // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !36) // CHECK:STDOUT: !75 = !DILocation(line: 7, column: 19, scope: !73) // CHECK:STDOUT: !76 = !{!74} -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d38552e658b9d7ce:core.Destroy.Core", scope: null, file: !32, line: 9, type: !52, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !80) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc9e5dacf328f74:core.Destroy.Core", scope: null, file: !32, line: 9, type: !52, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !80) // CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !77, type: !39) // CHECK:STDOUT: !79 = !DILocation(line: 9, column: 24, scope: !77) // CHECK:STDOUT: !80 = !{!78} -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.becc1452ae1d9d7b:core.Destroy.Core", scope: null, file: !32, line: 9, type: !54, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !84) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.be60742f00557eec:core.Destroy.Core", scope: null, file: !32, line: 9, type: !54, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !84) // CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !8) // CHECK:STDOUT: !83 = !DILocation(line: 9, column: 21, scope: !81) // CHECK:STDOUT: !84 = !{!82} diff --git a/toolchain/lower/testdata/interop/cpp/function/import/return.carbon b/toolchain/lower/testdata/interop/cpp/function/import/return.carbon index b028b0428293..cdb3cfe0c9ea 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/return.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/return.carbon @@ -264,33 +264,33 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: %ReturnI32.call = call i32 @_Z9ReturnI32v(), !dbg !112 // CHECK:STDOUT: %ReturnI64.call = call i64 @_Z9ReturnI64v(), !dbg !115 // CHECK:STDOUT: call void @_CUse.Main(i8 %.loc19_32.4, i16 %.loc20_35.4, i32 %ReturnU32.call, i64 %ReturnU64.call, i8 %.loc24_32.4, i16 %.loc25_35.4, i32 %ReturnI32.call, i64 %ReturnI64.call), !dbg !126 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc25_35.1.temp), !dbg !109 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %.loc24_32.1.temp), !dbg !106 -// CHECK:STDOUT: call void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %.loc20_35.1.temp), !dbg !97 -// CHECK:STDOUT: call void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !94 +// CHECK:STDOUT: call void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %.loc25_35.1.temp), !dbg !109 +// CHECK:STDOUT: call void @"_COp.4954785a8b134801:core.Destroy.Core"(ptr %.loc24_32.1.temp), !dbg !106 +// CHECK:STDOUT: call void @"_COp.3bc9e5dacf328f74:core.Destroy.Core"(ptr %.loc20_35.1.temp), !dbg !97 +// CHECK:STDOUT: call void @"_COp.be60742f00557eec:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !94 // CHECK:STDOUT: ret void, !dbg !127 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %self) #0 !dbg !128 { +// CHECK:STDOUT: define weak_odr void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %self) #0 !dbg !128 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !130 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %self) #0 !dbg !132 { +// CHECK:STDOUT: define weak_odr void @"_COp.4954785a8b134801:core.Destroy.Core"(ptr %self) #0 !dbg !132 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %self) #0 !dbg !136 { +// CHECK:STDOUT: define weak_odr void @"_COp.3bc9e5dacf328f74:core.Destroy.Core"(ptr %self) #0 !dbg !136 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %self) #0 !dbg !140 { +// CHECK:STDOUT: define weak_odr void @"_COp.be60742f00557eec:core.Destroy.Core"(ptr %self) #0 !dbg !140 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !142 // CHECK:STDOUT: } @@ -335,37 +335,37 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: %.loc43_53 = load i32, ptr %my_i32.var, align 4, !dbg !175 // CHECK:STDOUT: %.loc43_61 = load i64, ptr %my_i64.var, align 8, !dbg !176 // CHECK:STDOUT: call void @_CUse.Main(i8 %.loc43_7, i16 %.loc43_14, i32 %.loc43_22, i64 %.loc43_30, i8 %.loc43_38, i16 %.loc43_45, i32 %.loc43_53, i64 %.loc43_61), !dbg !177 -// CHECK:STDOUT: call void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %my_i64.var), !dbg !166 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %my_i32.var), !dbg !163 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %my_i16.var), !dbg !160 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %my_i8.var), !dbg !157 -// CHECK:STDOUT: call void @"_COp.8423634153f3fb6c:core.Destroy.Core"(ptr %my_u64.var), !dbg !154 -// CHECK:STDOUT: call void @"_COp.77fcb7cb81390d28:core.Destroy.Core"(ptr %my_u32.var), !dbg !151 -// CHECK:STDOUT: call void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %my_u16.var), !dbg !148 -// CHECK:STDOUT: call void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %my_u8.var), !dbg !145 +// CHECK:STDOUT: call void @"_COp.5aacfd7dcc330b17:core.Destroy.Core"(ptr %my_i64.var), !dbg !166 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %my_i32.var), !dbg !163 +// CHECK:STDOUT: call void @"_COp.d57cb32fcf12ec07:core.Destroy.Core"(ptr %my_i16.var), !dbg !160 +// CHECK:STDOUT: call void @"_COp.4954785a8b134801:core.Destroy.Core"(ptr %my_i8.var), !dbg !157 +// CHECK:STDOUT: call void @"_COp.18a2a1ac0d16cf80:core.Destroy.Core"(ptr %my_u64.var), !dbg !154 +// CHECK:STDOUT: call void @"_COp.ea3ccedbd6a1c75d:core.Destroy.Core"(ptr %my_u32.var), !dbg !151 +// CHECK:STDOUT: call void @"_COp.3bc9e5dacf328f74:core.Destroy.Core"(ptr %my_u16.var), !dbg !148 +// CHECK:STDOUT: call void @"_COp.be60742f00557eec:core.Destroy.Core"(ptr %my_u8.var), !dbg !145 // CHECK:STDOUT: ret void, !dbg !178 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %self) #0 !dbg !179 { +// CHECK:STDOUT: define weak_odr void @"_COp.5aacfd7dcc330b17:core.Destroy.Core"(ptr %self) #0 !dbg !179 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !181 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !183 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !183 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !185 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8423634153f3fb6c:core.Destroy.Core"(ptr %self) #0 !dbg !187 { +// CHECK:STDOUT: define weak_odr void @"_COp.18a2a1ac0d16cf80:core.Destroy.Core"(ptr %self) #0 !dbg !187 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !189 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.77fcb7cb81390d28:core.Destroy.Core"(ptr %self) #0 !dbg !191 { +// CHECK:STDOUT: define weak_odr void @"_COp.ea3ccedbd6a1c75d:core.Destroy.Core"(ptr %self) #0 !dbg !191 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !193 // CHECK:STDOUT: } @@ -474,19 +474,19 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: !115 = !DILocation(line: 27, column: 21, scope: !93) // CHECK:STDOUT: !126 = !DILocation(line: 29, column: 3, scope: !93) // CHECK:STDOUT: !127 = !DILocation(line: 18, column: 1, scope: !93) -// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "Op", linkageName: "_COp.91f16365ca65525e:core.Destroy.Core", scope: null, file: !4, line: 25, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !131) +// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d57cb32fcf12ec07:core.Destroy.Core", scope: null, file: !4, line: 25, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !131) // CHECK:STDOUT: !129 = !DILocalVariable(arg: 1, scope: !128, type: !11) // CHECK:STDOUT: !130 = !DILocation(line: 25, column: 21, scope: !128) // CHECK:STDOUT: !131 = !{!129} -// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "Op", linkageName: "_COp.136cbc434fe80552:core.Destroy.Core", scope: null, file: !4, line: 24, type: !40, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !135) +// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4954785a8b134801:core.Destroy.Core", scope: null, file: !4, line: 24, type: !40, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !135) // CHECK:STDOUT: !133 = !DILocalVariable(arg: 1, scope: !132, type: !10) // CHECK:STDOUT: !134 = !DILocation(line: 24, column: 19, scope: !132) // CHECK:STDOUT: !135 = !{!133} -// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d38552e658b9d7ce:core.Destroy.Core", scope: null, file: !4, line: 20, type: !42, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !139) +// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc9e5dacf328f74:core.Destroy.Core", scope: null, file: !4, line: 20, type: !42, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !139) // CHECK:STDOUT: !137 = !DILocalVariable(arg: 1, scope: !136, type: !7) // CHECK:STDOUT: !138 = !DILocation(line: 20, column: 21, scope: !136) // CHECK:STDOUT: !139 = !{!137} -// CHECK:STDOUT: !140 = distinct !DISubprogram(name: "Op", linkageName: "_COp.becc1452ae1d9d7b:core.Destroy.Core", scope: null, file: !4, line: 19, type: !44, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !143) +// CHECK:STDOUT: !140 = distinct !DISubprogram(name: "Op", linkageName: "_COp.be60742f00557eec:core.Destroy.Core", scope: null, file: !4, line: 19, type: !44, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !143) // CHECK:STDOUT: !141 = !DILocalVariable(arg: 1, scope: !140, type: !6) // CHECK:STDOUT: !142 = !DILocation(line: 19, column: 19, scope: !140) // CHECK:STDOUT: !143 = !{!141} @@ -517,19 +517,19 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: !176 = !DILocation(line: 43, column: 61, scope: !144) // CHECK:STDOUT: !177 = !DILocation(line: 43, column: 3, scope: !144) // CHECK:STDOUT: !178 = !DILocation(line: 32, column: 1, scope: !144) -// CHECK:STDOUT: !179 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5f42013854821c52:core.Destroy.Core", scope: null, file: !4, line: 41, type: !46, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !182) +// CHECK:STDOUT: !179 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5aacfd7dcc330b17:core.Destroy.Core", scope: null, file: !4, line: 41, type: !46, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !182) // CHECK:STDOUT: !180 = !DILocalVariable(arg: 1, scope: !179, type: !13) // CHECK:STDOUT: !181 = !DILocation(line: 41, column: 3, scope: !179) // CHECK:STDOUT: !182 = !{!180} -// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 40, type: !48, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !186) +// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 40, type: !48, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !186) // CHECK:STDOUT: !184 = !DILocalVariable(arg: 1, scope: !183, type: !12) // CHECK:STDOUT: !185 = !DILocation(line: 40, column: 3, scope: !183) // CHECK:STDOUT: !186 = !{!184} -// CHECK:STDOUT: !187 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8423634153f3fb6c:core.Destroy.Core", scope: null, file: !4, line: 36, type: !50, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !190) +// CHECK:STDOUT: !187 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18a2a1ac0d16cf80:core.Destroy.Core", scope: null, file: !4, line: 36, type: !50, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !190) // CHECK:STDOUT: !188 = !DILocalVariable(arg: 1, scope: !187, type: !9) // CHECK:STDOUT: !189 = !DILocation(line: 36, column: 3, scope: !187) // CHECK:STDOUT: !190 = !{!188} -// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "Op", linkageName: "_COp.77fcb7cb81390d28:core.Destroy.Core", scope: null, file: !4, line: 35, type: !52, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !194) +// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ea3ccedbd6a1c75d:core.Destroy.Core", scope: null, file: !4, line: 35, type: !52, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !194) // CHECK:STDOUT: !192 = !DILocalVariable(arg: 1, scope: !191, type: !8) // CHECK:STDOUT: !193 = !DILocation(line: 35, column: 3, scope: !191) // CHECK:STDOUT: !194 = !{!192} diff --git a/toolchain/lower/testdata/interop/cpp/issue7142.carbon b/toolchain/lower/testdata/interop/cpp/issue7142.carbon index 604f9b959983..e0a514dd6518 100644 --- a/toolchain/lower/testdata/interop/cpp/issue7142.carbon +++ b/toolchain/lower/testdata/interop/cpp/issue7142.carbon @@ -66,24 +66,24 @@ void f() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #2 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self), !dbg !20 +// CHECK:STDOUT: call void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %self), !dbg !20 // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #1 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #1 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7a7bf93ecb3607ea:core.Destroy.Core"(ptr %self) #1 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.a58e9b74ce410031:core.Destroy.Core"(ptr %self) #1 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #1 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.5a23cc09585c55d2:core.Destroy.Core"(ptr %self) #1 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } @@ -124,15 +124,15 @@ void f() { // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !18, type: !7) // CHECK:STDOUT: !20 = !DILocation(line: 15, column: 1, scope: !18) // CHECK:STDOUT: !21 = !{!19} -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !6) // CHECK:STDOUT: !24 = !DILocation(line: 15, column: 1, scope: !22) // CHECK:STDOUT: !25 = !{!23} -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7a7bf93ecb3607ea:core.Destroy.Core", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a58e9b74ce410031:core.Destroy.Core", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !7) // CHECK:STDOUT: !28 = !DILocation(line: 15, column: 1, scope: !26) // CHECK:STDOUT: !29 = !{!27} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5a23cc09585c55d2:core.Destroy.Core", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !7) // CHECK:STDOUT: !32 = !DILocation(line: 15, column: 1, scope: !30) // CHECK:STDOUT: !33 = !{!31} diff --git a/toolchain/lower/testdata/interop/cpp/nullptr.carbon b/toolchain/lower/testdata/interop/cpp/nullptr.carbon index 13e6e0dc7dab..4ecb6286f888 100644 --- a/toolchain/lower/testdata/interop/cpp/nullptr.carbon +++ b/toolchain/lower/testdata/interop/cpp/nullptr.carbon @@ -65,31 +65,31 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, ptr %.loc12_18.2.temp, align 8, !dbg !17 // CHECK:STDOUT: %.loc12_18.4 = load ptr, ptr %.loc12_18.2.temp, align 8, !dbg !17 // CHECK:STDOUT: call void @_Z7TakePtrPi(ptr %.loc12_18.4), !dbg !18 -// CHECK:STDOUT: call void @"_COp.77d64100f3a87f7e:core.Destroy.Core"(ptr %.loc12_18.2.temp), !dbg !17 +// CHECK:STDOUT: call void @"_COp.5b309895020f658e:core.Destroy.Core"(ptr %.loc12_18.2.temp), !dbg !17 // CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr poison), !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc14_22.1.temp), !dbg !19 // CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.Copy.impl.Op.call, ptr %.loc14_22.1.temp, align 8, !dbg !19 // CHECK:STDOUT: call void @_Z11TakeNullptrDn.carbon_thunk._(ptr %.loc14_22.1.temp), !dbg !20 -// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %.loc14_22.1.temp), !dbg !19 +// CHECK:STDOUT: call void @"_COp.826ebaace97974ae:core.Destroy.Core"(ptr %.loc14_22.1.temp), !dbg !19 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z7TakePtrPi(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8da6098981b7fee3:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.0f866e2c9731ba7d:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.59abebc75eab0036:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.6204fc8d2f2baaa7:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.77d64100f3a87f7e:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.5b309895020f658e:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } @@ -107,19 +107,19 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: declare ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2bb3ddafbe2fe5d2:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.a7d1b77eb1279818:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.24996695b716f57d:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.ddbd3dbdb388ab25:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.826ebaace97974ae:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -140,7 +140,7 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.Copy.impl.Op.call.loc22, ptr %a.var, align 8, !dbg !54 // CHECK:STDOUT: %.loc23 = load ptr, ptr %a.var, align 8, !dbg !57 // CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call.loc23 = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr %.loc23), !dbg !57 -// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %a.var), !dbg !54 +// CHECK:STDOUT: call void @"_COp.826ebaace97974ae:core.Destroy.Core"(ptr %a.var), !dbg !54 // CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.Copy.impl.Op.call.loc23, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -152,7 +152,7 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: call void @_Z13ReturnNullptrv.carbon_thunk.(ptr %a.var), !dbg !63 // CHECK:STDOUT: %.loc28_10 = load ptr, ptr %a.var, align 8, !dbg !65 // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr %.loc28_10), !dbg !66 -// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %a.var), !dbg !62 +// CHECK:STDOUT: call void @"_COp.826ebaace97974ae:core.Destroy.Core"(ptr %a.var), !dbg !62 // CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -175,7 +175,7 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: call void @_Z13ReturnNullptrv.carbon_thunk.(ptr %.loc32_28.1.temp), !dbg !70 // CHECK:STDOUT: %.loc32_28.4 = load ptr, ptr %.loc32_28.1.temp, align 8, !dbg !70 // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr %.loc32_28.4), !dbg !71 -// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %.loc32_28.1.temp), !dbg !70 +// CHECK:STDOUT: call void @"_COp.826ebaace97974ae:core.Destroy.Core"(ptr %.loc32_28.1.temp), !dbg !70 // CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -238,27 +238,27 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: !19 = !DILocation(line: 14, column: 19, scope: !16) // CHECK:STDOUT: !20 = !DILocation(line: 14, column: 3, scope: !16) // CHECK:STDOUT: !21 = !DILocation(line: 11, column: 1, scope: !16) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8da6098981b7fee3:core.Destroy.Core", scope: null, file: !4, line: 12, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0f866e2c9731ba7d:core.Destroy.Core", scope: null, file: !4, line: 12, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !9) // CHECK:STDOUT: !24 = !DILocation(line: 12, column: 15, scope: !22) // CHECK:STDOUT: !25 = !{!23} -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.59abebc75eab0036:core.Destroy.Core", scope: null, file: !4, line: 12, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6204fc8d2f2baaa7:core.Destroy.Core", scope: null, file: !4, line: 12, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !9) // CHECK:STDOUT: !28 = !DILocation(line: 12, column: 15, scope: !26) // CHECK:STDOUT: !29 = !{!27} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.77d64100f3a87f7e:core.Destroy.Core", scope: null, file: !4, line: 12, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5b309895020f658e:core.Destroy.Core", scope: null, file: !4, line: 12, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !9) // CHECK:STDOUT: !32 = !DILocation(line: 12, column: 15, scope: !30) // CHECK:STDOUT: !33 = !{!31} -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2bb3ddafbe2fe5d2:core.Destroy.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !37) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a7d1b77eb1279818:core.Destroy.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !37) // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !34, type: !9) // CHECK:STDOUT: !36 = !DILocation(line: 14, column: 19, scope: !34) // CHECK:STDOUT: !37 = !{!35} -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.24996695b716f57d:core.Destroy.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ddbd3dbdb388ab25:core.Destroy.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !9) // CHECK:STDOUT: !40 = !DILocation(line: 14, column: 19, scope: !38) // CHECK:STDOUT: !41 = !{!39} -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b2c31a0c2505b4b7:core.Destroy.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.826ebaace97974ae:core.Destroy.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !9) // CHECK:STDOUT: !44 = !DILocation(line: 14, column: 19, scope: !42) // CHECK:STDOUT: !45 = !{!43} diff --git a/toolchain/lower/testdata/interop/cpp/pointer.carbon b/toolchain/lower/testdata/interop/cpp/pointer.carbon index 836172d980c2..f80835f3029c 100644 --- a/toolchain/lower/testdata/interop/cpp/pointer.carbon +++ b/toolchain/lower/testdata/interop/cpp/pointer.carbon @@ -229,26 +229,26 @@ fn Convert() { // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc22_23.2.temp, align 8, !dbg !56 // CHECK:STDOUT: %.loc22_23.4 = load ptr, ptr %.loc22_23.2.temp, align 8, !dbg !56 // CHECK:STDOUT: call void @_Z15TakeNullablePtrP9NullableC(ptr %.loc22_23.4), !dbg !59 -// CHECK:STDOUT: call void @"_COp.af4d0379a4c35228:core.Destroy.Core"(ptr %.loc22_23.2.temp), !dbg !56 +// CHECK:STDOUT: call void @"_COp.574ea10b2e6709a0:core.Destroy.Core"(ptr %.loc22_23.2.temp), !dbg !56 // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z15TakeNullablePtrP9NullableC(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c4feefb53715d971:core.Destroy.Core"(ptr %self) #0 !dbg !62 { +// CHECK:STDOUT: define weak_odr void @"_COp.6789a803c53632c0:core.Destroy.Core"(ptr %self) #0 !dbg !62 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1a4db661cca0482a:core.Destroy.Core"(ptr %self) #0 !dbg !66 { +// CHECK:STDOUT: define weak_odr void @"_COp.d2847b010e2ea8b6:core.Destroy.Core"(ptr %self) #0 !dbg !66 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.af4d0379a4c35228:core.Destroy.Core"(ptr %self) #0 !dbg !70 { +// CHECK:STDOUT: define weak_odr void @"_COp.574ea10b2e6709a0:core.Destroy.Core"(ptr %self) #0 !dbg !70 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !72 // CHECK:STDOUT: } @@ -277,7 +277,7 @@ fn Convert() { // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc35_32.2.temp, align 8, !dbg !87 // CHECK:STDOUT: %.loc35_32.4 = load ptr, ptr %.loc35_32.2.temp, align 8, !dbg !87 // CHECK:STDOUT: call void @_Z24TakeNullablePtrWithThunkP9NullableCi.carbon_thunk._(ptr %.loc35_32.4), !dbg !88 -// CHECK:STDOUT: call void @"_COp.af4d0379a4c35228:core.Destroy.Core"(ptr %.loc35_32.2.temp), !dbg !87 +// CHECK:STDOUT: call void @"_COp.574ea10b2e6709a0:core.Destroy.Core"(ptr %.loc35_32.2.temp), !dbg !87 // CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -333,7 +333,7 @@ fn Convert() { // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !127 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !131 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !129 -// CHECK:STDOUT: call void @"_COp.1a4db661cca0482a:core.Destroy.Core"(ptr %1), !dbg !127 +// CHECK:STDOUT: call void @"_COp.d2847b010e2ea8b6:core.Destroy.Core"(ptr %1), !dbg !127 // CHECK:STDOUT: ret ptr %2, !dbg !133 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -384,15 +384,15 @@ fn Convert() { // CHECK:STDOUT: !59 = !DILocation(line: 22, column: 3, scope: !53) // CHECK:STDOUT: !60 = !DILocation(line: 19, column: 1, scope: !53) // CHECK:STDOUT: !61 = !{!54} -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c4feefb53715d971:core.Destroy.Core", scope: null, file: !46, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !65) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6789a803c53632c0:core.Destroy.Core", scope: null, file: !46, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !65) // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !6) // CHECK:STDOUT: !64 = !DILocation(line: 22, column: 23, scope: !62) // CHECK:STDOUT: !65 = !{!63} -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1a4db661cca0482a:core.Destroy.Core", scope: null, file: !46, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !69) +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d2847b010e2ea8b6:core.Destroy.Core", scope: null, file: !46, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !69) // CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !6) // CHECK:STDOUT: !68 = !DILocation(line: 22, column: 23, scope: !66) // CHECK:STDOUT: !69 = !{!67} -// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "Op", linkageName: "_COp.af4d0379a4c35228:core.Destroy.Core", scope: null, file: !46, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !73) +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "Op", linkageName: "_COp.574ea10b2e6709a0:core.Destroy.Core", scope: null, file: !46, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !73) // CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !70, type: !6) // CHECK:STDOUT: !72 = !DILocation(line: 22, column: 23, scope: !70) // CHECK:STDOUT: !73 = !{!71} @@ -453,13 +453,13 @@ fn Convert() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.1.temp), !dbg !142 // CHECK:STDOUT: store ptr %make.call, ptr %.loc11_21.1.temp, align 8, !dbg !142 // CHECK:STDOUT: %.loc11_21.3 = load ptr, ptr %.loc11_21.1.temp, align 8, !dbg !142 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.f9fd89fc1ccb531f"(ptr %.loc11_21.3), !dbg !142 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.773fefc3ed9265ca"(ptr %.loc11_21.3), !dbg !142 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.5.temp), !dbg !142 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc11_21.5.temp, align 8, !dbg !142 // CHECK:STDOUT: %.loc11_21.7 = load ptr, ptr %.loc11_21.5.temp, align 8, !dbg !142 // CHECK:STDOUT: call void @_Z4takePK6ConstC(ptr %.loc11_21.7), !dbg !143 -// CHECK:STDOUT: call void @"_COp.cde1f9fdf283467b:core.Destroy.Core"(ptr %.loc11_21.5.temp), !dbg !142 -// CHECK:STDOUT: call void @"_COp.a6ac3d473017b2cc:core.Destroy.Core"(ptr %.loc11_21.1.temp), !dbg !142 +// CHECK:STDOUT: call void @"_COp.19661d0961df889d:core.Destroy.Core"(ptr %.loc11_21.5.temp), !dbg !142 +// CHECK:STDOUT: call void @"_COp.78fd6ee82eacbbc3:core.Destroy.Core"(ptr %.loc11_21.1.temp), !dbg !142 // CHECK:STDOUT: ret void, !dbg !144 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -468,37 +468,37 @@ fn Convert() { // CHECK:STDOUT: declare void @_Z4takePK6ConstC(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.53a1c4a6a5cbb234:core.Destroy.Core"(ptr %self) #0 !dbg !145 { +// CHECK:STDOUT: define weak_odr void @"_COp.bdb5ffe218b7af7d:core.Destroy.Core"(ptr %self) #0 !dbg !145 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !147 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fd6b21bba6dfd55d:core.Destroy.Core"(ptr %self) #0 !dbg !149 { +// CHECK:STDOUT: define weak_odr void @"_COp.7865857458566fb7:core.Destroy.Core"(ptr %self) #0 !dbg !149 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !151 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cde1f9fdf283467b:core.Destroy.Core"(ptr %self) #0 !dbg !153 { +// CHECK:STDOUT: define weak_odr void @"_COp.19661d0961df889d:core.Destroy.Core"(ptr %self) #0 !dbg !153 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !155 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fc86501cbc1f8185:core.Destroy.Core"(ptr %self) #0 !dbg !157 { +// CHECK:STDOUT: define weak_odr void @"_COp.e3602e7640dfb844:core.Destroy.Core"(ptr %self) #0 !dbg !157 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !159 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b682b9cd8310efa2:core.Destroy.Core"(ptr %self) #0 !dbg !161 { +// CHECK:STDOUT: define weak_odr void @"_COp.67387c5c416bcd0b:core.Destroy.Core"(ptr %self) #0 !dbg !161 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !163 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a6ac3d473017b2cc:core.Destroy.Core"(ptr %self) #0 !dbg !165 { +// CHECK:STDOUT: define weak_odr void @"_COp.78fd6ee82eacbbc3:core.Destroy.Core"(ptr %self) #0 !dbg !165 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !167 // CHECK:STDOUT: } @@ -507,13 +507,13 @@ fn Convert() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.f9fd89fc1ccb531f"(ptr %self) #0 !dbg !169 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.3efc4c2a62f24739"(ptr %self), !dbg !174 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.773fefc3ed9265ca"(ptr %self) #0 !dbg !169 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.9e559524fb018133"(ptr %self), !dbg !174 // CHECK:STDOUT: ret ptr %1, !dbg !175 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.3efc4c2a62f24739"(ptr %self) #0 !dbg !177 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.9e559524fb018133"(ptr %self) #0 !dbg !177 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !184 // CHECK:STDOUT: %temp1 = alloca ptr, align 8, !dbg !184 // CHECK:STDOUT: %1 = call i1 @_CHasValue.Optional.Core.0c3518913b4fb338(ptr %self), !dbg !182 @@ -577,7 +577,7 @@ fn Convert() { // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !244 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !248 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !246 -// CHECK:STDOUT: call void @"_COp.fd6b21bba6dfd55d:core.Destroy.Core"(ptr %1), !dbg !244 +// CHECK:STDOUT: call void @"_COp.7865857458566fb7:core.Destroy.Core"(ptr %1), !dbg !244 // CHECK:STDOUT: ret ptr %2, !dbg !250 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -618,36 +618,36 @@ fn Convert() { // CHECK:STDOUT: !142 = !DILocation(line: 11, column: 12, scope: !141) // CHECK:STDOUT: !143 = !DILocation(line: 11, column: 3, scope: !141) // CHECK:STDOUT: !144 = !DILocation(line: 10, column: 1, scope: !141) -// CHECK:STDOUT: !145 = distinct !DISubprogram(name: "Op", linkageName: "_COp.53a1c4a6a5cbb234:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !148) +// CHECK:STDOUT: !145 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bdb5ffe218b7af7d:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !148) // CHECK:STDOUT: !146 = !DILocalVariable(arg: 1, scope: !145, type: !6) // CHECK:STDOUT: !147 = !DILocation(line: 11, column: 12, scope: !145) // CHECK:STDOUT: !148 = !{!146} -// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fd6b21bba6dfd55d:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !152) +// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7865857458566fb7:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !152) // CHECK:STDOUT: !150 = !DILocalVariable(arg: 1, scope: !149, type: !6) // CHECK:STDOUT: !151 = !DILocation(line: 11, column: 12, scope: !149) // CHECK:STDOUT: !152 = !{!150} -// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cde1f9fdf283467b:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !156) +// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "Op", linkageName: "_COp.19661d0961df889d:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !156) // CHECK:STDOUT: !154 = !DILocalVariable(arg: 1, scope: !153, type: !6) // CHECK:STDOUT: !155 = !DILocation(line: 11, column: 12, scope: !153) // CHECK:STDOUT: !156 = !{!154} -// CHECK:STDOUT: !157 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fc86501cbc1f8185:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !160) +// CHECK:STDOUT: !157 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e3602e7640dfb844:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !160) // CHECK:STDOUT: !158 = !DILocalVariable(arg: 1, scope: !157, type: !6) // CHECK:STDOUT: !159 = !DILocation(line: 11, column: 12, scope: !157) // CHECK:STDOUT: !160 = !{!158} -// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b682b9cd8310efa2:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !164) +// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "Op", linkageName: "_COp.67387c5c416bcd0b:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !164) // CHECK:STDOUT: !162 = !DILocalVariable(arg: 1, scope: !161, type: !6) // CHECK:STDOUT: !163 = !DILocation(line: 11, column: 12, scope: !161) // CHECK:STDOUT: !164 = !{!162} -// CHECK:STDOUT: !165 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a6ac3d473017b2cc:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !168) +// CHECK:STDOUT: !165 = distinct !DISubprogram(name: "Op", linkageName: "_COp.78fd6ee82eacbbc3:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !168) // CHECK:STDOUT: !166 = !DILocalVariable(arg: 1, scope: !165, type: !6) // CHECK:STDOUT: !167 = !DILocation(line: 11, column: 12, scope: !165) // CHECK:STDOUT: !168 = !{!166} -// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.f9fd89fc1ccb531f", scope: null, file: !96, line: 105, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !176) +// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.773fefc3ed9265ca", scope: null, file: !96, line: 105, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !176) // CHECK:STDOUT: !170 = !DILocalVariable(arg: 1, scope: !169, type: !6) // CHECK:STDOUT: !174 = !DILocation(line: 106, column: 12, scope: !169) // CHECK:STDOUT: !175 = !DILocation(line: 106, column: 5, scope: !169) // CHECK:STDOUT: !176 = !{!170} -// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.3efc4c2a62f24739", scope: null, file: !96, line: 95, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !189) +// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.9e559524fb018133", scope: null, file: !96, line: 95, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !189) // CHECK:STDOUT: !178 = !DILocalVariable(arg: 1, scope: !177, type: !6) // CHECK:STDOUT: !182 = !DILocation(line: 96, column: 9, scope: !177) // CHECK:STDOUT: !183 = !DILocation(line: 96, column: 8, scope: !177) diff --git a/toolchain/lower/testdata/interop/cpp/reference.carbon b/toolchain/lower/testdata/interop/cpp/reference.carbon index 085f111ef13b..0fb13c63f8c1 100644 --- a/toolchain/lower/testdata/interop/cpp/reference.carbon +++ b/toolchain/lower/testdata/interop/cpp/reference.carbon @@ -157,13 +157,13 @@ fn GetRefs() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.2), !dbg !45 // CHECK:STDOUT: store i32 42, ptr %_.var.2, align 4, !dbg !45 // CHECK:STDOUT: call void @_Z11TakeIntRRefOi.carbon_thunk.v(ptr %_.var.2), !dbg !46 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.2), !dbg !45 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var.2), !dbg !45 // CHECK:STDOUT: %.loc25_23.1 = load i32, ptr %n.var, align 4, !dbg !47 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_23.2.temp), !dbg !47 // CHECK:STDOUT: store i32 %.loc25_23.1, ptr %.loc25_23.2.temp, align 4, !dbg !47 // CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi.carbon_thunk._(ptr %.loc25_23.2.temp), !dbg !48 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc25_23.2.temp), !dbg !47 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !40 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %.loc25_23.2.temp), !dbg !47 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !40 // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -218,7 +218,7 @@ fn GetRefs() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } @@ -254,7 +254,7 @@ fn GetRefs() { // CHECK:STDOUT: declare void @_Z15TakeConstIntRefRKi(ptr noundef nonnull align 4 dereferenceable(4)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.70db2d92ffddbef7:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f58524831c37807e:core.Destroy.Core", { 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 4, 3, 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -296,7 +296,7 @@ fn GetRefs() { // CHECK:STDOUT: !49 = !DILocation(line: 16, column: 1, scope: !30) // CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !18, line: 5, type: !27, spFlags: DISPFlagDefinition, unit: !19) // CHECK:STDOUT: !52 = !DILocation(line: 5, column: 7, scope: !50) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !56) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !56) // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !20) // CHECK:STDOUT: !55 = !DILocation(line: 12, column: 23, scope: !53) // CHECK:STDOUT: !56 = !{!54} @@ -348,13 +348,13 @@ fn GetRefs() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !93 // CHECK:STDOUT: store i32 42, ptr %_.var, align 4, !dbg !93 // CHECK:STDOUT: call void @_Z11TakeIntRRefOi10ForceThunk.carbon_thunk.v(ptr %_.var), !dbg !94 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !93 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var), !dbg !93 // CHECK:STDOUT: %.loc26_23.1 = load i32, ptr %n.var, align 4, !dbg !95 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_23.2.temp), !dbg !95 // CHECK:STDOUT: store i32 %.loc26_23.1, ptr %.loc26_23.2.temp, align 4, !dbg !95 // CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi10ForceThunk.carbon_thunk._(ptr %.loc26_23.2.temp), !dbg !96 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc26_23.2.temp), !dbg !95 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !88 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %.loc26_23.2.temp), !dbg !95 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !88 // CHECK:STDOUT: ret void, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -430,7 +430,7 @@ fn GetRefs() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !101 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !101 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } @@ -468,7 +468,7 @@ fn GetRefs() { // CHECK:STDOUT: declare void @_Z15TakeConstIntRefRKi10ForceThunk(ptr noundef nonnull align 4 dereferenceable(4)) #5 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.70db2d92ffddbef7:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f58524831c37807e:core.Destroy.Core", { 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 4, 3, 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -523,7 +523,7 @@ fn GetRefs() { // CHECK:STDOUT: !97 = !DILocation(line: 17, column: 1, scope: !78) // CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !76, line: 5, type: !27, spFlags: DISPFlagDefinition, unit: !77) // CHECK:STDOUT: !100 = !DILocation(line: 5, column: 7, scope: !98) -// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !76, line: 13, type: !29, spFlags: DISPFlagDefinition, unit: !77, retainedNodes: !104) +// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !76, line: 13, type: !29, spFlags: DISPFlagDefinition, unit: !77, retainedNodes: !104) // CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !101, type: !20) // CHECK:STDOUT: !103 = !DILocation(line: 13, column: 23, scope: !101) // CHECK:STDOUT: !104 = !{!102} diff --git a/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_pointer.carbon b/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_pointer.carbon index 27e9a7836b6d..a3b6cd08b940 100644 --- a/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_pointer.carbon +++ b/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_pointer.carbon @@ -100,18 +100,18 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !17 // CHECK:STDOUT: store ptr getelementptr inbounds ([3 x i32], ptr @array.loc13_50.15, i32 1), ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !17 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !20 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !18 +// CHECK:STDOUT: call void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr @array), !dbg !18 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -134,7 +134,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: store ptr getelementptr inbounds ([3 x i32], ptr @array.loc13_50.15, i32 1), ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !32 // CHECK:STDOUT: call void @_ZN11vector_likeC1ESt16initializer_listIiE.carbon_thunk._(ptr %.loc18_36.3.temp, ptr %_.var), !dbg !31 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !34 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !32 +// CHECK:STDOUT: call void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr @array), !dbg !32 // CHECK:STDOUT: call void @_ZN11vector_likeD2Ev(ptr %_.var), !dbg !31 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } @@ -186,7 +186,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: %initializer_list.initializer_list.call.array.end = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 1, !dbg !37 // CHECK:STDOUT: store ptr %initializer_list.initializer_list.call.array.end, ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !37 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !40 -// CHECK:STDOUT: call void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !38 +// CHECK:STDOUT: call void @"_COp.71d86972d5684aff:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !38 // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -210,7 +210,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.71d86972d5684aff:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -274,11 +274,11 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !18 = !DILocation(line: 13, column: 42, scope: !16) // CHECK:STDOUT: !20 = !DILocation(line: 14, column: 3, scope: !16) // CHECK:STDOUT: !21 = !DILocation(line: 12, column: 1, scope: !16) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 13, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 13, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !6) // CHECK:STDOUT: !24 = !DILocation(line: 13, column: 42, scope: !22) // CHECK:STDOUT: !25 = !{!23} -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !4, line: 13, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc7dedd104b837b2:core.Destroy.Core", scope: null, file: !4, line: 13, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !11) // CHECK:STDOUT: !28 = !DILocation(line: 13, column: 42, scope: !26) // CHECK:STDOUT: !29 = !{!27} @@ -292,7 +292,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !38 = !DILocation(line: 23, column: 58, scope: !36) // CHECK:STDOUT: !40 = !DILocation(line: 24, column: 3, scope: !36) // CHECK:STDOUT: !41 = !DILocation(line: 22, column: 1, scope: !36) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.baa51490b2bdaa96:core.Destroy.Core", scope: null, file: !4, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.71d86972d5684aff:core.Destroy.Core", scope: null, file: !4, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !11) // CHECK:STDOUT: !44 = !DILocation(line: 23, column: 58, scope: !42) // CHECK:STDOUT: !45 = !{!43} diff --git a/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_size.carbon b/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_size.carbon index 561645f623b7..8076984732aa 100644 --- a/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_size.carbon +++ b/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_size.carbon @@ -100,18 +100,18 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !18 // CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !18 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !21 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !19 +// CHECK:STDOUT: call void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr @array), !dbg !19 // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -134,7 +134,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !33 // CHECK:STDOUT: call void @_ZN11vector_likeC1ESt16initializer_listIiE.carbon_thunk._(ptr %.loc18_36.3.temp, ptr %_.var), !dbg !32 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !35 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !33 +// CHECK:STDOUT: call void @"_COp.dc7dedd104b837b2:core.Destroy.Core"(ptr @array), !dbg !33 // CHECK:STDOUT: call void @_ZN11vector_likeD2Ev(ptr %_.var), !dbg !32 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } @@ -185,7 +185,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !38 // CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !38 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !41 -// CHECK:STDOUT: call void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !39 +// CHECK:STDOUT: call void @"_COp.71d86972d5684aff:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !39 // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -209,7 +209,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.71d86972d5684aff:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } @@ -273,11 +273,11 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !19 = !DILocation(line: 13, column: 42, scope: !17) // CHECK:STDOUT: !21 = !DILocation(line: 14, column: 3, scope: !17) // CHECK:STDOUT: !22 = !DILocation(line: 12, column: 1, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 13, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 13, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !6) // CHECK:STDOUT: !25 = !DILocation(line: 13, column: 42, scope: !23) // CHECK:STDOUT: !26 = !{!24} -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !4, line: 13, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc7dedd104b837b2:core.Destroy.Core", scope: null, file: !4, line: 13, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !12) // CHECK:STDOUT: !29 = !DILocation(line: 13, column: 42, scope: !27) // CHECK:STDOUT: !30 = !{!28} @@ -291,7 +291,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !39 = !DILocation(line: 23, column: 58, scope: !37) // CHECK:STDOUT: !41 = !DILocation(line: 24, column: 3, scope: !37) // CHECK:STDOUT: !42 = !DILocation(line: 22, column: 1, scope: !37) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.baa51490b2bdaa96:core.Destroy.Core", scope: null, file: !4, line: 23, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.71d86972d5684aff:core.Destroy.Core", scope: null, file: !4, line: 23, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !12) // CHECK:STDOUT: !45 = !DILocation(line: 23, column: 58, scope: !43) // CHECK:STDOUT: !46 = !{!44} diff --git a/toolchain/lower/testdata/interop/cpp/void.carbon b/toolchain/lower/testdata/interop/cpp/void.carbon index 95dc82486ab3..6e9371c7b058 100644 --- a/toolchain/lower/testdata/interop/cpp/void.carbon +++ b/toolchain/lower/testdata/interop/cpp/void.carbon @@ -71,26 +71,26 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc7_21.2.temp, align 8, !dbg !13 // CHECK:STDOUT: %.loc7_21.4 = load ptr, ptr %.loc7_21.2.temp, align 8, !dbg !13 // CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc7_21.4), !dbg !16 -// CHECK:STDOUT: call void @"_COp.ab1af2e999d1dfe1:core.Destroy.Core"(ptr %.loc7_21.2.temp), !dbg !13 +// CHECK:STDOUT: call void @"_COp.14b4a412ddf73a96:core.Destroy.Core"(ptr %.loc7_21.2.temp), !dbg !13 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z13take_void_ptrPv(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2bb3ddafbe2fe5d2:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.a7d1b77eb1279818:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.24996695b716f57d:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.ddbd3dbdb388ab25:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ab1af2e999d1dfe1:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.14b4a412ddf73a96:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -99,12 +99,12 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassIntPtr.Main(ptr %a) #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc11_21.2.temp = alloca ptr, align 8, !dbg !34 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.9db51af7092ba247"(ptr %a), !dbg !34 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.743bdca835b10868"(ptr %a), !dbg !34 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.2.temp), !dbg !34 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc11_21.2.temp, align 8, !dbg !34 // CHECK:STDOUT: %.loc11_21.4 = load ptr, ptr %.loc11_21.2.temp, align 8, !dbg !34 // CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc11_21.4), !dbg !35 -// CHECK:STDOUT: call void @"_COp.ab1af2e999d1dfe1:core.Destroy.Core"(ptr %.loc11_21.2.temp), !dbg !34 +// CHECK:STDOUT: call void @"_COp.14b4a412ddf73a96:core.Destroy.Core"(ptr %.loc11_21.2.temp), !dbg !34 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -112,31 +112,31 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassIntPtrToConstVoidPtr.Main(ptr %a) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc15_27.2.temp = alloca ptr, align 8, !dbg !41 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb"(ptr %a), !dbg !41 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.aed6f04ab83d7fc5"(ptr %a), !dbg !41 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc15_27.2.temp), !dbg !41 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc15_27.2.temp, align 8, !dbg !41 // CHECK:STDOUT: %.loc15_27.4 = load ptr, ptr %.loc15_27.2.temp, align 8, !dbg !41 // CHECK:STDOUT: call void @_Z19take_const_void_ptrPKv(ptr %.loc15_27.4), !dbg !42 -// CHECK:STDOUT: call void @"_COp.05b8ef735d2db490:core.Destroy.Core"(ptr %.loc15_27.2.temp), !dbg !41 +// CHECK:STDOUT: call void @"_COp.dfb26e502f641cc5:core.Destroy.Core"(ptr %.loc15_27.2.temp), !dbg !41 // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z19take_const_void_ptrPKv(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1b9dec9ba7b5442e:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.8d3ff16138365f48:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.0ca0de5f18f7d6e9:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.d7d7d0af84cf13b8:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.05b8ef735d2db490:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.dfb26e502f641cc5:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } @@ -145,12 +145,12 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassConstIntPtrToConstVoidPtr.Main(ptr %a) #0 !dbg !57 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc19_27.2.temp = alloca ptr, align 8, !dbg !60 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb"(ptr %a), !dbg !60 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.aed6f04ab83d7fc5"(ptr %a), !dbg !60 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_27.2.temp), !dbg !60 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc19_27.2.temp, align 8, !dbg !60 // CHECK:STDOUT: %.loc19_27.4 = load ptr, ptr %.loc19_27.2.temp, align 8, !dbg !60 // CHECK:STDOUT: call void @_Z19take_const_void_ptrPKv(ptr %.loc19_27.4), !dbg !61 -// CHECK:STDOUT: call void @"_COp.05b8ef735d2db490:core.Destroy.Core"(ptr %.loc19_27.2.temp), !dbg !60 +// CHECK:STDOUT: call void @"_COp.dfb26e502f641cc5:core.Destroy.Core"(ptr %.loc19_27.2.temp), !dbg !60 // CHECK:STDOUT: ret void, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -164,14 +164,14 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.9db51af7092ba247"(ptr %self) #0 !dbg !73 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.a6387af2c84c1f91"(ptr %self), !dbg !78 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.743bdca835b10868"(ptr %self) #0 !dbg !73 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.fbfbaeeadd5088b8"(ptr %self), !dbg !78 // CHECK:STDOUT: ret ptr %1, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb"(ptr %self) #0 !dbg !81 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.09ed4effa59a8188"(ptr %self), !dbg !86 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.aed6f04ab83d7fc5"(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.0d728554b50ee51c"(ptr %self), !dbg !86 // CHECK:STDOUT: ret ptr %1, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -182,7 +182,7 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.a6387af2c84c1f91"(ptr %self) #0 !dbg !106 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.fbfbaeeadd5088b8"(ptr %self) #0 !dbg !106 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !111 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !111 // CHECK:STDOUT: store ptr %self, ptr %temp, align 8, !dbg !111 @@ -192,7 +192,7 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.09ed4effa59a8188"(ptr %self) #0 !dbg !115 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.0d728554b50ee51c"(ptr %self) #0 !dbg !115 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !120 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !120 // CHECK:STDOUT: %1 = call ptr @"_CConvert:thunk:ImplicitAs.a569d188b7ffe592.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba"(ptr %self), !dbg !120 @@ -226,7 +226,7 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !165 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !169 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !167 -// CHECK:STDOUT: call void @"_COp.24996695b716f57d:core.Destroy.Core"(ptr %1), !dbg !165 +// CHECK:STDOUT: call void @"_COp.ddbd3dbdb388ab25:core.Destroy.Core"(ptr %1), !dbg !165 // CHECK:STDOUT: ret ptr %2, !dbg !171 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -237,13 +237,13 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !178 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !182 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !180 -// CHECK:STDOUT: call void @"_COp.0ca0de5f18f7d6e9:core.Destroy.Core"(ptr %1), !dbg !178 +// CHECK:STDOUT: call void @"_COp.d7d7d0af84cf13b8:core.Destroy.Core"(ptr %1), !dbg !178 // CHECK:STDOUT: ret ptr %2, !dbg !184 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 1, 2, 3, 7, 6, 5, 4 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.aed6f04ab83d7fc5", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @_CSome.Optional.Core.4201ec9a263c5642, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -270,15 +270,15 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !16 = !DILocation(line: 7, column: 3, scope: !10) // CHECK:STDOUT: !17 = !DILocation(line: 6, column: 1, scope: !10) // CHECK:STDOUT: !18 = !{!11} -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2bb3ddafbe2fe5d2:core.Destroy.Core", scope: null, file: !4, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a7d1b77eb1279818:core.Destroy.Core", scope: null, file: !4, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !7) // CHECK:STDOUT: !21 = !DILocation(line: 7, column: 21, scope: !19) // CHECK:STDOUT: !22 = !{!20} -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.24996695b716f57d:core.Destroy.Core", scope: null, file: !4, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ddbd3dbdb388ab25:core.Destroy.Core", scope: null, file: !4, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !7) // CHECK:STDOUT: !25 = !DILocation(line: 7, column: 21, scope: !23) // CHECK:STDOUT: !26 = !{!24} -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ab1af2e999d1dfe1:core.Destroy.Core", scope: null, file: !4, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.14b4a412ddf73a96:core.Destroy.Core", scope: null, file: !4, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !7) // CHECK:STDOUT: !29 = !DILocation(line: 7, column: 21, scope: !27) // CHECK:STDOUT: !30 = !{!28} @@ -294,15 +294,15 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !42 = !DILocation(line: 15, column: 3, scope: !38) // CHECK:STDOUT: !43 = !DILocation(line: 14, column: 1, scope: !38) // CHECK:STDOUT: !44 = !{!39} -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1b9dec9ba7b5442e:core.Destroy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !48) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8d3ff16138365f48:core.Destroy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !48) // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !7) // CHECK:STDOUT: !47 = !DILocation(line: 15, column: 27, scope: !45) // CHECK:STDOUT: !48 = !{!46} -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0ca0de5f18f7d6e9:core.Destroy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !52) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d7d7d0af84cf13b8:core.Destroy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !52) // CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !7) // CHECK:STDOUT: !51 = !DILocation(line: 15, column: 27, scope: !49) // CHECK:STDOUT: !52 = !{!50} -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.05b8ef735d2db490:core.Destroy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !56) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dfb26e502f641cc5:core.Destroy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !56) // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !7) // CHECK:STDOUT: !55 = !DILocation(line: 15, column: 27, scope: !53) // CHECK:STDOUT: !56 = !{!54} @@ -318,12 +318,12 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !70 = !DILocation(line: 106, column: 12, scope: !65) // CHECK:STDOUT: !71 = !DILocation(line: 106, column: 5, scope: !65) // CHECK:STDOUT: !72 = !{!66} -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.9db51af7092ba247", scope: null, file: !64, line: 105, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !80) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.743bdca835b10868", scope: null, file: !64, line: 105, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !80) // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !7) // CHECK:STDOUT: !78 = !DILocation(line: 106, column: 12, scope: !73) // CHECK:STDOUT: !79 = !DILocation(line: 106, column: 5, scope: !73) // CHECK:STDOUT: !80 = !{!74} -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb", scope: null, file: !64, line: 105, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !88) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.aed6f04ab83d7fc5", scope: null, file: !64, line: 105, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !88) // CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !7) // CHECK:STDOUT: !86 = !DILocation(line: 106, column: 12, scope: !81) // CHECK:STDOUT: !87 = !DILocation(line: 106, column: 5, scope: !81) @@ -333,13 +333,13 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !103 = !DILocation(line: 81, column: 12, scope: !97) // CHECK:STDOUT: !104 = !DILocation(line: 81, column: 5, scope: !97) // CHECK:STDOUT: !105 = !{!98} -// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.a6387af2c84c1f91", scope: null, file: !64, line: 87, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !114) +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.fbfbaeeadd5088b8", scope: null, file: !64, line: 87, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !114) // CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !7) // CHECK:STDOUT: !111 = !DILocation(line: 88, column: 29, scope: !106) // CHECK:STDOUT: !112 = !DILocation(line: 88, column: 12, scope: !106) // CHECK:STDOUT: !113 = !DILocation(line: 88, column: 5, scope: !106) // CHECK:STDOUT: !114 = !{!107} -// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.09ed4effa59a8188", scope: null, file: !64, line: 87, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !123) +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.0d728554b50ee51c", scope: null, file: !64, line: 87, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !123) // CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !7) // CHECK:STDOUT: !120 = !DILocation(line: 88, column: 29, scope: !115) // CHECK:STDOUT: !121 = !DILocation(line: 88, column: 12, scope: !115) diff --git a/toolchain/lower/testdata/let/copy_value_rep.carbon b/toolchain/lower/testdata/let/copy_value_rep.carbon index 6c15f562aa08..af1958343607 100644 --- a/toolchain/lower/testdata/let/copy_value_rep.carbon +++ b/toolchain/lower/testdata/let/copy_value_rep.carbon @@ -39,24 +39,24 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc19_17.2 = load i32, ptr %.loc19_17.1.a, align 4, !dbg !34 // CHECK:STDOUT: %.loc20_4.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !37 // CHECK:STDOUT: store i32 2, ptr %.loc20_4.a, align 4, !dbg !37 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.8b0bf151036f045a:core.Destroy.Core"(ptr %x.var), !dbg !31 // CHECK:STDOUT: ret i32 %.loc19_17.2, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.a9280e8bea6fc5f9:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %self) #0 !dbg !48 { +// CHECK:STDOUT: define weak_odr void @"_COp.8b0bf151036f045a:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } @@ -91,15 +91,15 @@ fn Run() -> i32 { // CHECK:STDOUT: !34 = !DILocation(line: 19, column: 16, scope: !28) // CHECK:STDOUT: !37 = !DILocation(line: 20, column: 3, scope: !28) // CHECK:STDOUT: !39 = !DILocation(line: 22, column: 3, scope: !28) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) // CHECK:STDOUT: !42 = !DILocation(line: 18, column: 3, scope: !40) // CHECK:STDOUT: !43 = !{!41} -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68d83131305ed52b:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a9280e8bea6fc5f9:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !25) // CHECK:STDOUT: !46 = !DILocation(line: 18, column: 3, scope: !44) // CHECK:STDOUT: !47 = !{!45} -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.617e09fd62745f5d:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !51) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8b0bf151036f045a:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !51) // CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !25) // CHECK:STDOUT: !50 = !DILocation(line: 18, column: 3, scope: !48) // CHECK:STDOUT: !51 = !{!49} diff --git a/toolchain/lower/testdata/let/tuple.carbon b/toolchain/lower/testdata/let/tuple.carbon index 29a1d7f152c8..ae1ed98af3c8 100644 --- a/toolchain/lower/testdata/let/tuple.carbon +++ b/toolchain/lower/testdata/let/tuple.carbon @@ -72,25 +72,25 @@ fn F() -> i32 { // CHECK:STDOUT: %tuple.elem1.loc17_11.tuple.elem.load = load ptr, ptr %tuple.elem1.loc17_11.tuple.elem, align 8, !dbg !42 // CHECK:STDOUT: %tuple.elem1.loc17_13.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %tuple.elem1.loc17_11.tuple.elem.load, i32 0, i32 1, !dbg !42 // CHECK:STDOUT: %tuple.elem1.loc17_13.tuple.elem.load = load i32, ptr %tuple.elem1.loc17_13.tuple.elem, align 4, !dbg !42 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %b.var), !dbg !34 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %b.var), !dbg !34 +// CHECK:STDOUT: call void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %a.var), !dbg !31 // CHECK:STDOUT: ret i32 %tuple.elem1.loc17_13.tuple.elem.load, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !48 { +// CHECK:STDOUT: define weak_odr void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !52 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } @@ -133,15 +133,15 @@ fn F() -> i32 { // CHECK:STDOUT: !39 = !DILocation(line: 16, column: 42, scope: !28) // CHECK:STDOUT: !42 = !DILocation(line: 17, column: 10, scope: !28) // CHECK:STDOUT: !43 = !DILocation(line: 17, column: 3, scope: !28) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !20) // CHECK:STDOUT: !46 = !DILocation(line: 15, column: 3, scope: !44) // CHECK:STDOUT: !47 = !{!45} -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !51) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !51) // CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !25) // CHECK:STDOUT: !50 = !DILocation(line: 15, column: 3, scope: !48) // CHECK:STDOUT: !51 = !{!49} -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !55) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !55) // CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !25) // CHECK:STDOUT: !54 = !DILocation(line: 14, column: 3, scope: !52) // CHECK:STDOUT: !55 = !{!53} diff --git a/toolchain/lower/testdata/operators/assignment.carbon b/toolchain/lower/testdata/operators/assignment.carbon index ee89c5b04ffe..b1e4af90f684 100644 --- a/toolchain/lower/testdata/operators/assignment.carbon +++ b/toolchain/lower/testdata/operators/assignment.carbon @@ -36,12 +36,12 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: store i32 12, ptr %a.var, align 4, !dbg !33 // CHECK:STDOUT: store i32 9, ptr %a.var, align 4, !dbg !35 // CHECK:STDOUT: %.loc16 = load i32, ptr %a.var, align 4, !dbg !36 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !33 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %a.var), !dbg !33 // CHECK:STDOUT: ret i32 %.loc16, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } @@ -62,12 +62,12 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: %.loc22_10.3 = load i32, ptr %tuple.elem1.loc22_10.1.tuple.elem, align 4, !dbg !49 // CHECK:STDOUT: %tuple.elem1.loc22_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !49 // CHECK:STDOUT: store i32 %.loc22_10.3, ptr %tuple.elem1.loc22_10.2.tuple.elem, align 4, !dbg !49 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %b.var), !dbg !45 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %b.var), !dbg !45 // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define weak_odr void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } @@ -106,7 +106,7 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: !35 = !DILocation(line: 15, column: 3, scope: !30) // CHECK:STDOUT: !36 = !DILocation(line: 16, column: 10, scope: !30) // CHECK:STDOUT: !37 = !DILocation(line: 16, column: 3, scope: !30) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) // CHECK:STDOUT: !40 = !DILocation(line: 14, column: 3, scope: !38) // CHECK:STDOUT: !41 = !{!39} @@ -116,7 +116,7 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: !48 = !DILocation(line: 21, column: 7, scope: !42) // CHECK:STDOUT: !49 = !DILocation(line: 22, column: 10, scope: !42) // CHECK:STDOUT: !50 = !DILocation(line: 22, column: 3, scope: !42) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:core.Destroy.Core", scope: null, file: !18, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !25) // CHECK:STDOUT: !53 = !DILocation(line: 20, column: 3, scope: !51) // CHECK:STDOUT: !54 = !{!52} diff --git a/toolchain/lower/testdata/operators/increment.carbon b/toolchain/lower/testdata/operators/increment.carbon index d30b9c152038..74fb5c0c05dd 100644 --- a/toolchain/lower/testdata/operators/increment.carbon +++ b/toolchain/lower/testdata/operators/increment.carbon @@ -30,12 +30,12 @@ fn IncrSigned() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %from.var), !dbg !12 // CHECK:STDOUT: store i32 0, ptr %from.var, align 4, !dbg !12 // CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %from.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %from.var), !dbg !12 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %from.var), !dbg !12 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } @@ -89,7 +89,7 @@ fn IncrSigned() { // CHECK:STDOUT: !12 = !DILocation(line: 5, column: 3, scope: !11) // CHECK:STDOUT: !15 = !DILocation(line: 6, column: 3, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 4, column: 1, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !20) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !20) // CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !17, type: !6) // CHECK:STDOUT: !19 = !DILocation(line: 5, column: 3, scope: !17) // CHECK:STDOUT: !20 = !{!18} diff --git a/toolchain/lower/testdata/operators/overloaded.carbon b/toolchain/lower/testdata/operators/overloaded.carbon index 739ecc8300c3..db860a1dbfa2 100644 --- a/toolchain/lower/testdata/operators/overloaded.carbon +++ b/toolchain/lower/testdata/operators/overloaded.carbon @@ -99,18 +99,18 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc30_10.1.temp), !dbg !48 // CHECK:STDOUT: call void @"_COp.Number.Main:Negate.Core"(ptr %.loc30_10.1.temp, ptr %a), !dbg !48 // CHECK:STDOUT: call void @"_COp.Number.Main:MulWith.124acaad20680602.Core"(ptr %return, ptr %.loc30_10.1.temp, ptr %b), !dbg !48 -// CHECK:STDOUT: call void @"_COp.e9b64e5ce9c1b06d:core.Destroy.Core"(ptr %.loc30_10.1.temp), !dbg !48 +// CHECK:STDOUT: call void @"_COp.3e6115156c640ef2:core.Destroy.Core"(ptr %.loc30_10.1.temp), !dbg !48 // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c93d65ba26581f30:core.Destroy.Core"(ptr %self) #0 !dbg !52 { +// CHECK:STDOUT: define weak_odr void @"_COp.4fdb30b3bf76b447:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e9b64e5ce9c1b06d:core.Destroy.Core"(ptr %self) #0 !dbg !56 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e6115156c640ef2:core.Destroy.Core"(ptr %self) #0 !dbg !56 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } @@ -161,11 +161,11 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: !48 = !DILocation(line: 30, column: 10, scope: !40) // CHECK:STDOUT: !50 = !DILocation(line: 30, column: 3, scope: !40) // CHECK:STDOUT: !51 = !{!41, !42} -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c93d65ba26581f30:core.Destroy.Core", scope: null, file: !4, line: 30, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4fdb30b3bf76b447:core.Destroy.Core", scope: null, file: !4, line: 30, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) // CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !6) // CHECK:STDOUT: !54 = !DILocation(line: 30, column: 10, scope: !52) // CHECK:STDOUT: !55 = !{!53} -// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e9b64e5ce9c1b06d:core.Destroy.Core", scope: null, file: !4, line: 30, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !59) +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e6115156c640ef2:core.Destroy.Core", scope: null, file: !4, line: 30, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !59) // CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !6) // CHECK:STDOUT: !58 = !DILocation(line: 30, column: 10, scope: !56) // CHECK:STDOUT: !59 = !{!57} diff --git a/toolchain/lower/testdata/packages/imported_type_completeness.carbon b/toolchain/lower/testdata/packages/imported_type_completeness.carbon index 123103403bd3..77fec0ec6aa5 100644 --- a/toolchain/lower/testdata/packages/imported_type_completeness.carbon +++ b/toolchain/lower/testdata/packages/imported_type_completeness.carbon @@ -118,7 +118,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fed6abc73c8aca6f:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.b7a0a8bb33ac84ff:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } @@ -129,10 +129,10 @@ fn CallF() { // CHECK:STDOUT: %temp1 = alloca {}, align 1, !dbg !42 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !38 // CHECK:STDOUT: %1 = call i123 @_CF.C.Main.e43630e9a6c38c3f(), !dbg !39 -// CHECK:STDOUT: call void @"_COp.fed6abc73c8aca6f:core.Destroy.Core"(ptr @C.val.eeb), !dbg !38 +// CHECK:STDOUT: call void @"_COp.b7a0a8bb33ac84ff:core.Destroy.Core"(ptr @C.val.eeb), !dbg !38 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp1), !dbg !42 // CHECK:STDOUT: %2 = call i456 @_CG.C.Main.e43630e9a6c38c3f(), !dbg !44 -// CHECK:STDOUT: call void @"_COp.fed6abc73c8aca6f:core.Destroy.Core"(ptr @C.val.eeb), !dbg !42 +// CHECK:STDOUT: call void @"_COp.b7a0a8bb33ac84ff:core.Destroy.Core"(ptr @C.val.eeb), !dbg !42 // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -173,7 +173,7 @@ fn CallF() { // CHECK:STDOUT: !29 = distinct !DISubprogram(name: "I", linkageName: "_CI.Main", scope: null, file: !22, line: 6, type: !25, spFlags: DISPFlagDefinition, unit: !23) // CHECK:STDOUT: !30 = !DILocation(line: 9, column: 3, scope: !29) // CHECK:STDOUT: !31 = !DILocation(line: 6, column: 1, scope: !29) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fed6abc73c8aca6f:core.Destroy.Core", scope: null, file: !18, line: 19, type: !28, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !35) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b7a0a8bb33ac84ff:core.Destroy.Core", scope: null, file: !18, line: 19, type: !28, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !35) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !26) // CHECK:STDOUT: !34 = !DILocation(line: 19, column: 4, scope: !32) // CHECK:STDOUT: !35 = !{!33} @@ -244,7 +244,7 @@ fn CallF() { // CHECK:STDOUT: source_filename = "require_completion_in_virtual_call.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !68 { +// CHECK:STDOUT: define weak_odr void @"_COp.95528a86e1127e2d:core.Destroy.Core"(ptr %self) #0 !dbg !68 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } @@ -261,7 +261,7 @@ fn CallF() { // CHECK:STDOUT: !28 = !DISubroutineType(types: !27) // CHECK:STDOUT: !66 = !DIFile(filename: "require_completion_in_virtual_call.carbon", directory: "") // CHECK:STDOUT: !67 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !66, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !66, line: 7, type: !28, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !71) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95528a86e1127e2d:core.Destroy.Core", scope: null, file: !66, line: 7, type: !28, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !71) // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !26) // CHECK:STDOUT: !70 = !DILocation(line: 7, column: 3, scope: !68) // CHECK:STDOUT: !71 = !{!69} @@ -281,24 +281,24 @@ fn CallF() { // CHECK:STDOUT: %.loc9_9.2.temp = alloca {}, align 1, !dbg !75 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_9.2.temp), !dbg !75 // CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr @C.val.d1d.loc9_11.3), !dbg !76 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val.d1d), !dbg !75 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr @C.val.d1d), !dbg !75 // CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !78 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !78 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !82 { +// CHECK:STDOUT: define weak_odr void @"_COp.95528a86e1127e2d:core.Destroy.Core"(ptr %self) #0 !dbg !82 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.565c6ab0bb3d654c:core.Destroy.Core"(ptr %self) #0 !dbg !86 { +// CHECK:STDOUT: define weak_odr void @"_COp.119330419006a03e:core.Destroy.Core"(ptr %self) #0 !dbg !86 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } @@ -318,7 +318,7 @@ fn CallF() { // CHECK:STDOUT: %vtable1 = load ptr, ptr %1, align 8, !dbg !99 // CHECK:STDOUT: %4 = call ptr @llvm.load.relative.i32(ptr %vtable1, i32 4), !dbg !99 // CHECK:STDOUT: %5 = call i12 %4(ptr %1, ptr %t), !dbg !99 -// CHECK:STDOUT: call void @"_COp.565c6ab0bb3d654c:core.Destroy.Core"(ptr %1), !dbg !93 +// CHECK:STDOUT: call void @"_COp.119330419006a03e:core.Destroy.Core"(ptr %1), !dbg !93 // CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -365,15 +365,15 @@ fn CallF() { // CHECK:STDOUT: !75 = !DILocation(line: 9, column: 8, scope: !74) // CHECK:STDOUT: !76 = !DILocation(line: 9, column: 3, scope: !74) // CHECK:STDOUT: !77 = !DILocation(line: 8, column: 1, scope: !74) -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !72, line: 9, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !81) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !72, line: 9, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !81) // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !26) // CHECK:STDOUT: !80 = !DILocation(line: 9, column: 8, scope: !78) // CHECK:STDOUT: !81 = !{!79} -// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !66, line: 7, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !85) +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95528a86e1127e2d:core.Destroy.Core", scope: null, file: !66, line: 7, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !85) // CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !26) // CHECK:STDOUT: !84 = !DILocation(line: 7, column: 3, scope: !82) // CHECK:STDOUT: !85 = !{!83} -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.565c6ab0bb3d654c:core.Destroy.Core", scope: null, file: !66, line: 7, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !89) +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.119330419006a03e:core.Destroy.Core", scope: null, file: !66, line: 7, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !89) // CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !26) // CHECK:STDOUT: !88 = !DILocation(line: 7, column: 3, scope: !86) // CHECK:STDOUT: !89 = !{!87} diff --git a/toolchain/lower/testdata/packages/separate_compilation_witness.carbon b/toolchain/lower/testdata/packages/separate_compilation_witness.carbon index 93f4bd4b2c28..c9df68c7f280 100644 --- a/toolchain/lower/testdata/packages/separate_compilation_witness.carbon +++ b/toolchain/lower/testdata/packages/separate_compilation_witness.carbon @@ -183,7 +183,7 @@ fn CallGeneric() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc5_18.1.temp), !dbg !50 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc5_18.1.temp, ptr %v2, i32 2), !dbg !50 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc5_18.1.temp), !dbg !49 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc5_18.1.temp), !dbg !50 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc5_18.1.temp), !dbg !50 // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -192,19 +192,19 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !57 { +// CHECK:STDOUT: define weak_odr void @"_COp.a15077f50f3020c3:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } @@ -237,15 +237,15 @@ fn CallGeneric() { // CHECK:STDOUT: !50 = !DILocation(line: 5, column: 15, scope: !42) // CHECK:STDOUT: !51 = !DILocation(line: 5, column: 3, scope: !42) // CHECK:STDOUT: !52 = !{!43, !44} -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !36, line: 5, type: !39, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !56) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !36, line: 5, type: !39, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !56) // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !6) // CHECK:STDOUT: !55 = !DILocation(line: 5, column: 15, scope: !53) // CHECK:STDOUT: !56 = !{!54} -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !36, line: 5, type: !41, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !60) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a15077f50f3020c3:core.Destroy.Core", scope: null, file: !36, line: 5, type: !41, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !60) // CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !57, type: !7) // CHECK:STDOUT: !59 = !DILocation(line: 5, column: 15, scope: !57) // CHECK:STDOUT: !60 = !{!58} -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !36, line: 5, type: !41, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !64) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d9636b4f2fbd64a7:core.Destroy.Core", scope: null, file: !36, line: 5, type: !41, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !64) // CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !7) // CHECK:STDOUT: !63 = !DILocation(line: 5, column: 15, scope: !61) // CHECK:STDOUT: !64 = !{!62} @@ -261,7 +261,7 @@ fn CallGeneric() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_18.1.temp), !dbg !75 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc7_18.1.temp, ptr %v2, i32 2), !dbg !75 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc7_18.1.temp), !dbg !74 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !75 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !75 // CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -270,19 +270,19 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !78 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !78 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !82 { +// CHECK:STDOUT: define weak_odr void @"_COp.a15077f50f3020c3:core.Destroy.Core"(ptr %self) #0 !dbg !82 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !86 { +// CHECK:STDOUT: define weak_odr void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %self) #0 !dbg !86 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } @@ -315,15 +315,15 @@ fn CallGeneric() { // CHECK:STDOUT: !75 = !DILocation(line: 7, column: 15, scope: !67) // CHECK:STDOUT: !76 = !DILocation(line: 7, column: 3, scope: !67) // CHECK:STDOUT: !77 = !{!68, !69} -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !65, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !81) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !65, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !81) // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !6) // CHECK:STDOUT: !80 = !DILocation(line: 7, column: 15, scope: !78) // CHECK:STDOUT: !81 = !{!79} -// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !65, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !85) +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a15077f50f3020c3:core.Destroy.Core", scope: null, file: !65, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !85) // CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !7) // CHECK:STDOUT: !84 = !DILocation(line: 7, column: 15, scope: !82) // CHECK:STDOUT: !85 = !{!83} -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !65, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !89) +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d9636b4f2fbd64a7:core.Destroy.Core", scope: null, file: !65, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !89) // CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !7) // CHECK:STDOUT: !88 = !DILocation(line: 7, column: 15, scope: !86) // CHECK:STDOUT: !89 = !{!87} @@ -337,19 +337,19 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !94 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !94 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !96 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !98 { +// CHECK:STDOUT: define weak_odr void @"_COp.a15077f50f3020c3:core.Destroy.Core"(ptr %self) #0 !dbg !98 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !100 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !102 { +// CHECK:STDOUT: define weak_odr void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %self) #0 !dbg !102 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !104 // CHECK:STDOUT: } @@ -371,15 +371,15 @@ fn CallGeneric() { // CHECK:STDOUT: !41 = !DISubroutineType(types: !40) // CHECK:STDOUT: !90 = !DIFile(filename: "generic_same_package.carbon", directory: "") // CHECK:STDOUT: !91 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !90, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !94 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !90, line: 6, type: !39, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !97) +// CHECK:STDOUT: !94 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !90, line: 6, type: !39, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !97) // CHECK:STDOUT: !95 = !DILocalVariable(arg: 1, scope: !94, type: !6) // CHECK:STDOUT: !96 = !DILocation(line: 6, column: 15, scope: !94) // CHECK:STDOUT: !97 = !{!95} -// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !90, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !101) +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a15077f50f3020c3:core.Destroy.Core", scope: null, file: !90, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !101) // CHECK:STDOUT: !99 = !DILocalVariable(arg: 1, scope: !98, type: !7) // CHECK:STDOUT: !100 = !DILocation(line: 6, column: 15, scope: !98) // CHECK:STDOUT: !101 = !{!99} -// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !90, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !105) +// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d9636b4f2fbd64a7:core.Destroy.Core", scope: null, file: !90, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !105) // CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !7) // CHECK:STDOUT: !104 = !DILocation(line: 6, column: 15, scope: !102) // CHECK:STDOUT: !105 = !{!103} @@ -400,28 +400,28 @@ fn CallGeneric() { // CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_28.1.temp), !dbg !112 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_29.2.temp), !dbg !113 // CHECK:STDOUT: call void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr %.loc7_29.2.temp, ptr %.loc7_20.1.temp, ptr %.loc7_28.1.temp), !dbg !113 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !113 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !112 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !111 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !113 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !112 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !111 // CHECK:STDOUT: ret void, !dbg !114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OwningPackage(ptr sret({ i32 })) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !115 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !115 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !119 { +// CHECK:STDOUT: define weak_odr void @"_COp.a15077f50f3020c3:core.Destroy.Core"(ptr %self) #0 !dbg !119 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !123 { +// CHECK:STDOUT: define weak_odr void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %self) #0 !dbg !123 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } @@ -435,7 +435,7 @@ fn CallGeneric() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !135 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !135 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !134 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %temp), !dbg !135 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %temp), !dbg !135 // CHECK:STDOUT: ret void, !dbg !136 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -445,7 +445,7 @@ fn CallGeneric() { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CMake.OwningPackage, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.3e88a108c7e00533:core.Destroy.Core", { 0, 3, 2, 1 } +// CHECK:STDOUT: uselistorder ptr @"_COp.d9636b4f2fbd64a7:core.Destroy.Core", { 0, 3, 2, 1 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 3, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -474,15 +474,15 @@ fn CallGeneric() { // CHECK:STDOUT: !112 = !DILocation(line: 7, column: 23, scope: !110) // CHECK:STDOUT: !113 = !DILocation(line: 7, column: 3, scope: !110) // CHECK:STDOUT: !114 = !DILocation(line: 5, column: 1, scope: !110) -// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !106, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !118) +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !106, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !118) // CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !6) // CHECK:STDOUT: !117 = !DILocation(line: 7, column: 3, scope: !115) // CHECK:STDOUT: !118 = !{!116} -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !106, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !122) +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a15077f50f3020c3:core.Destroy.Core", scope: null, file: !106, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !122) // CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !7) // CHECK:STDOUT: !121 = !DILocation(line: 7, column: 3, scope: !119) // CHECK:STDOUT: !122 = !{!120} -// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !106, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !126) +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d9636b4f2fbd64a7:core.Destroy.Core", scope: null, file: !106, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !126) // CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !7) // CHECK:STDOUT: !125 = !DILocation(line: 7, column: 3, scope: !123) // CHECK:STDOUT: !126 = !{!124} @@ -505,7 +505,7 @@ fn CallGeneric() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_18.1.temp), !dbg !148 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc7_18.1.temp, ptr %v2, i32 2), !dbg !148 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc7_18.1.temp), !dbg !147 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !148 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !148 // CHECK:STDOUT: ret void, !dbg !149 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -514,19 +514,19 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !151 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !151 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !153 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !155 { +// CHECK:STDOUT: define weak_odr void @"_COp.a15077f50f3020c3:core.Destroy.Core"(ptr %self) #0 !dbg !155 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !157 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !159 { +// CHECK:STDOUT: define weak_odr void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %self) #0 !dbg !159 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !161 // CHECK:STDOUT: } @@ -559,15 +559,15 @@ fn CallGeneric() { // CHECK:STDOUT: !148 = !DILocation(line: 7, column: 15, scope: !140) // CHECK:STDOUT: !149 = !DILocation(line: 7, column: 3, scope: !140) // CHECK:STDOUT: !150 = !{!141, !142} -// CHECK:STDOUT: !151 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !138, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !154) +// CHECK:STDOUT: !151 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !138, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !154) // CHECK:STDOUT: !152 = !DILocalVariable(arg: 1, scope: !151, type: !6) // CHECK:STDOUT: !153 = !DILocation(line: 7, column: 15, scope: !151) // CHECK:STDOUT: !154 = !{!152} -// CHECK:STDOUT: !155 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !138, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !158) +// CHECK:STDOUT: !155 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a15077f50f3020c3:core.Destroy.Core", scope: null, file: !138, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !158) // CHECK:STDOUT: !156 = !DILocalVariable(arg: 1, scope: !155, type: !7) // CHECK:STDOUT: !157 = !DILocation(line: 7, column: 15, scope: !155) // CHECK:STDOUT: !158 = !{!156} -// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !138, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !162) +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d9636b4f2fbd64a7:core.Destroy.Core", scope: null, file: !138, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !162) // CHECK:STDOUT: !160 = !DILocalVariable(arg: 1, scope: !159, type: !7) // CHECK:STDOUT: !161 = !DILocation(line: 7, column: 15, scope: !159) // CHECK:STDOUT: !162 = !{!160} @@ -588,28 +588,28 @@ fn CallGeneric() { // CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_70.1.temp), !dbg !167 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_71.2.temp), !dbg !168 // CHECK:STDOUT: call void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr %.loc7_71.2.temp, ptr %.loc7_48.1.temp, ptr %.loc7_70.1.temp), !dbg !168 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_71.2.temp), !dbg !168 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_70.1.temp), !dbg !167 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_48.1.temp), !dbg !166 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_71.2.temp), !dbg !168 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_70.1.temp), !dbg !167 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_48.1.temp), !dbg !166 // CHECK:STDOUT: ret void, !dbg !169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OwningPackage(ptr sret({ i32 })) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !170 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !170 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !172 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !174 { +// CHECK:STDOUT: define weak_odr void @"_COp.a15077f50f3020c3:core.Destroy.Core"(ptr %self) #0 !dbg !174 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !176 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !178 { +// CHECK:STDOUT: define weak_odr void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %self) #0 !dbg !178 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !180 // CHECK:STDOUT: } @@ -623,7 +623,7 @@ fn CallGeneric() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !190 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !190 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !189 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %temp), !dbg !190 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %temp), !dbg !190 // CHECK:STDOUT: ret void, !dbg !191 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -633,7 +633,7 @@ fn CallGeneric() { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CMake.OwningPackage, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.3e88a108c7e00533:core.Destroy.Core", { 0, 3, 2, 1 } +// CHECK:STDOUT: uselistorder ptr @"_COp.d9636b4f2fbd64a7:core.Destroy.Core", { 0, 3, 2, 1 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 3, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -662,15 +662,15 @@ fn CallGeneric() { // CHECK:STDOUT: !167 = !DILocation(line: 7, column: 51, scope: !165) // CHECK:STDOUT: !168 = !DILocation(line: 7, column: 3, scope: !165) // CHECK:STDOUT: !169 = !DILocation(line: 5, column: 1, scope: !165) -// CHECK:STDOUT: !170 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !163, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !173) +// CHECK:STDOUT: !170 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !163, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !173) // CHECK:STDOUT: !171 = !DILocalVariable(arg: 1, scope: !170, type: !6) // CHECK:STDOUT: !172 = !DILocation(line: 7, column: 3, scope: !170) // CHECK:STDOUT: !173 = !{!171} -// CHECK:STDOUT: !174 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !163, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !177) +// CHECK:STDOUT: !174 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a15077f50f3020c3:core.Destroy.Core", scope: null, file: !163, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !177) // CHECK:STDOUT: !175 = !DILocalVariable(arg: 1, scope: !174, type: !7) // CHECK:STDOUT: !176 = !DILocation(line: 7, column: 3, scope: !174) // CHECK:STDOUT: !177 = !{!175} -// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !163, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !181) +// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d9636b4f2fbd64a7:core.Destroy.Core", scope: null, file: !163, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !181) // CHECK:STDOUT: !179 = !DILocalVariable(arg: 1, scope: !178, type: !7) // CHECK:STDOUT: !180 = !DILocation(line: 7, column: 3, scope: !178) // CHECK:STDOUT: !181 = !{!179} @@ -691,19 +691,19 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !195 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !195 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !197 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !199 { +// CHECK:STDOUT: define weak_odr void @"_COp.a15077f50f3020c3:core.Destroy.Core"(ptr %self) #0 !dbg !199 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !201 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !203 { +// CHECK:STDOUT: define weak_odr void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %self) #0 !dbg !203 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !205 // CHECK:STDOUT: } @@ -725,15 +725,15 @@ fn CallGeneric() { // CHECK:STDOUT: !41 = !DISubroutineType(types: !40) // CHECK:STDOUT: !193 = !DIFile(filename: "generic_different_package.carbon", directory: "") // CHECK:STDOUT: !194 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !193, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !195 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !193, line: 6, type: !39, spFlags: DISPFlagDefinition, unit: !194, retainedNodes: !198) +// CHECK:STDOUT: !195 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !193, line: 6, type: !39, spFlags: DISPFlagDefinition, unit: !194, retainedNodes: !198) // CHECK:STDOUT: !196 = !DILocalVariable(arg: 1, scope: !195, type: !6) // CHECK:STDOUT: !197 = !DILocation(line: 6, column: 15, scope: !195) // CHECK:STDOUT: !198 = !{!196} -// CHECK:STDOUT: !199 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !193, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !194, retainedNodes: !202) +// CHECK:STDOUT: !199 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a15077f50f3020c3:core.Destroy.Core", scope: null, file: !193, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !194, retainedNodes: !202) // CHECK:STDOUT: !200 = !DILocalVariable(arg: 1, scope: !199, type: !7) // CHECK:STDOUT: !201 = !DILocation(line: 6, column: 15, scope: !199) // CHECK:STDOUT: !202 = !{!200} -// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !193, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !194, retainedNodes: !206) +// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d9636b4f2fbd64a7:core.Destroy.Core", scope: null, file: !193, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !194, retainedNodes: !206) // CHECK:STDOUT: !204 = !DILocalVariable(arg: 1, scope: !203, type: !7) // CHECK:STDOUT: !205 = !DILocation(line: 6, column: 15, scope: !203) // CHECK:STDOUT: !206 = !{!204} @@ -754,28 +754,28 @@ fn CallGeneric() { // CHECK:STDOUT: call void @_CMake.OtherPackage(ptr %.loc7_28.1.temp), !dbg !211 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_29.2.temp), !dbg !212 // CHECK:STDOUT: call void @_CGeneric.OtherPackage.e43630e9a6c38c3f(ptr %.loc7_29.2.temp, ptr %.loc7_20.1.temp, ptr %.loc7_28.1.temp), !dbg !212 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !212 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !211 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !210 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !212 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !211 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !210 // CHECK:STDOUT: ret void, !dbg !213 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OtherPackage(ptr sret({ i32 })) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !214 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !214 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !216 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !218 { +// CHECK:STDOUT: define weak_odr void @"_COp.a15077f50f3020c3:core.Destroy.Core"(ptr %self) #0 !dbg !218 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !220 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !222 { +// CHECK:STDOUT: define weak_odr void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %self) #0 !dbg !222 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !224 // CHECK:STDOUT: } @@ -789,7 +789,7 @@ fn CallGeneric() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !234 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !234 // CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !233 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %temp), !dbg !234 +// CHECK:STDOUT: call void @"_COp.d9636b4f2fbd64a7:core.Destroy.Core"(ptr %temp), !dbg !234 // CHECK:STDOUT: ret void, !dbg !235 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -799,7 +799,7 @@ fn CallGeneric() { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CMake.OtherPackage, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.3e88a108c7e00533:core.Destroy.Core", { 0, 3, 2, 1 } +// CHECK:STDOUT: uselistorder ptr @"_COp.d9636b4f2fbd64a7:core.Destroy.Core", { 0, 3, 2, 1 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 3, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -828,15 +828,15 @@ fn CallGeneric() { // CHECK:STDOUT: !211 = !DILocation(line: 7, column: 23, scope: !209) // CHECK:STDOUT: !212 = !DILocation(line: 7, column: 3, scope: !209) // CHECK:STDOUT: !213 = !DILocation(line: 5, column: 1, scope: !209) -// CHECK:STDOUT: !214 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !207, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !217) +// CHECK:STDOUT: !214 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !207, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !217) // CHECK:STDOUT: !215 = !DILocalVariable(arg: 1, scope: !214, type: !6) // CHECK:STDOUT: !216 = !DILocation(line: 7, column: 3, scope: !214) // CHECK:STDOUT: !217 = !{!215} -// CHECK:STDOUT: !218 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !207, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !221) +// CHECK:STDOUT: !218 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a15077f50f3020c3:core.Destroy.Core", scope: null, file: !207, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !221) // CHECK:STDOUT: !219 = !DILocalVariable(arg: 1, scope: !218, type: !7) // CHECK:STDOUT: !220 = !DILocation(line: 7, column: 3, scope: !218) // CHECK:STDOUT: !221 = !{!219} -// CHECK:STDOUT: !222 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !207, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !225) +// CHECK:STDOUT: !222 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d9636b4f2fbd64a7:core.Destroy.Core", scope: null, file: !207, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !225) // CHECK:STDOUT: !223 = !DILocalVariable(arg: 1, scope: !222, type: !7) // CHECK:STDOUT: !224 = !DILocation(line: 7, column: 3, scope: !222) // CHECK:STDOUT: !225 = !{!223} diff --git a/toolchain/lower/testdata/pointer/address_of_field.carbon b/toolchain/lower/testdata/pointer/address_of_field.carbon index a5a7fbd3472a..73e5c081d76d 100644 --- a/toolchain/lower/testdata/pointer/address_of_field.carbon +++ b/toolchain/lower/testdata/pointer/address_of_field.carbon @@ -35,18 +35,18 @@ fn F() { // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %s.var, ptr align 4 @struct.631.loc16_3, i64 8, i1 false), !dbg !29 // CHECK:STDOUT: %.loc17.b = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 1, !dbg !32 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc17.b), !dbg !34 -// CHECK:STDOUT: call void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %s.var), !dbg !29 +// CHECK:STDOUT: call void @"_COp.b4c762864cd9a02b:core.Destroy.Core"(ptr %s.var), !dbg !29 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !36 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.b4c762864cd9a02b:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } @@ -81,11 +81,11 @@ fn F() { // CHECK:STDOUT: !32 = !DILocation(line: 17, column: 6, scope: !28) // CHECK:STDOUT: !34 = !DILocation(line: 17, column: 3, scope: !28) // CHECK:STDOUT: !35 = !DILocation(line: 15, column: 1, scope: !28) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !20) // CHECK:STDOUT: !38 = !DILocation(line: 16, column: 3, scope: !36) // CHECK:STDOUT: !39 = !{!37} -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !18, line: 16, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b4c762864cd9a02b:core.Destroy.Core", scope: null, file: !18, line: 16, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !21) // CHECK:STDOUT: !42 = !DILocation(line: 16, column: 3, scope: !40) // CHECK:STDOUT: !43 = !{!41} diff --git a/toolchain/lower/testdata/pointer/address_of_unused.carbon b/toolchain/lower/testdata/pointer/address_of_unused.carbon index e37d19484146..228703cff432 100644 --- a/toolchain/lower/testdata/pointer/address_of_unused.carbon +++ b/toolchain/lower/testdata/pointer/address_of_unused.carbon @@ -25,12 +25,12 @@ fn F() { // CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !26 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !26 // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !26 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !26 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !26 // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -56,7 +56,7 @@ fn F() { // CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) // CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !25) // CHECK:STDOUT: !30 = !DILocation(line: 13, column: 1, scope: !25) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !34) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !34) // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !20) // CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !31) // CHECK:STDOUT: !34 = !{!32} diff --git a/toolchain/lower/testdata/pointer/basic.carbon b/toolchain/lower/testdata/pointer/basic.carbon index 86d6ccb3a2ef..d69a5f66495b 100644 --- a/toolchain/lower/testdata/pointer/basic.carbon +++ b/toolchain/lower/testdata/pointer/basic.carbon @@ -37,12 +37,12 @@ fn F() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !40 // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !40 // CHECK:STDOUT: %G.call = call i32 @_CG.Main(ptr %n.var), !dbg !44 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !40 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %n.var), !dbg !40 // CHECK:STDOUT: ret i32 %G.call, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !46 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !46 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } @@ -77,7 +77,7 @@ fn F() -> i32 { // CHECK:STDOUT: !40 = !DILocation(line: 18, column: 3, scope: !37) // CHECK:STDOUT: !44 = !DILocation(line: 19, column: 10, scope: !37) // CHECK:STDOUT: !45 = !DILocation(line: 19, column: 3, scope: !37) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !49) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !49) // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !20) // CHECK:STDOUT: !48 = !DILocation(line: 18, column: 3, scope: !46) // CHECK:STDOUT: !49 = !{!47} diff --git a/toolchain/lower/testdata/primitives/numeric_literals.carbon b/toolchain/lower/testdata/primitives/numeric_literals.carbon index 731978043736..6a5c5d2f20ba 100644 --- a/toolchain/lower/testdata/primitives/numeric_literals.carbon +++ b/toolchain/lower/testdata/primitives/numeric_literals.carbon @@ -55,31 +55,31 @@ fn F() { // CHECK:STDOUT: %.loc29_3.15.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 4, !dbg !47 // CHECK:STDOUT: %.loc29_3.18.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 5, !dbg !47 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc22, ptr align 8 @array.69b.loc22_3, i64 48, i1 false), !dbg !46 -// CHECK:STDOUT: call void @"_COp.6936189c60c87c89:core.Destroy.Core"(ptr %_.var.loc22), !dbg !46 -// CHECK:STDOUT: call void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr %_.var.loc16), !dbg !43 +// CHECK:STDOUT: call void @"_COp.2891f36f5aa8bde4:core.Destroy.Core"(ptr %_.var.loc22), !dbg !46 +// CHECK:STDOUT: call void @"_COp.88cc3346b7991af5:core.Destroy.Core"(ptr %_.var.loc16), !dbg !43 // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !50 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !50 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6936189c60c87c89:core.Destroy.Core"(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: define weak_odr void @"_COp.2891f36f5aa8bde4:core.Destroy.Core"(ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !58 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !58 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr %self) #0 !dbg !62 { +// CHECK:STDOUT: define weak_odr void @"_COp.88cc3346b7991af5:core.Destroy.Core"(ptr %self) #0 !dbg !62 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } @@ -118,19 +118,19 @@ fn F() { // CHECK:STDOUT: !46 = !DILocation(line: 22, column: 3, scope: !42) // CHECK:STDOUT: !47 = !DILocation(line: 22, column: 26, scope: !42) // CHECK:STDOUT: !49 = !DILocation(line: 13, column: 1, scope: !42) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 22, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !53) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !32, line: 22, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !53) // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !37) // CHECK:STDOUT: !52 = !DILocation(line: 22, column: 3, scope: !50) // CHECK:STDOUT: !53 = !{!51} -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6936189c60c87c89:core.Destroy.Core", scope: null, file: !32, line: 22, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !57) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2891f36f5aa8bde4:core.Destroy.Core", scope: null, file: !32, line: 22, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !57) // CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !37) // CHECK:STDOUT: !56 = !DILocation(line: 22, column: 3, scope: !54) // CHECK:STDOUT: !57 = !{!55} -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 16, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !61) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !32, line: 16, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !61) // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !34) // CHECK:STDOUT: !60 = !DILocation(line: 16, column: 3, scope: !58) // CHECK:STDOUT: !61 = !{!59} -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eefa3f320d583a8d:core.Destroy.Core", scope: null, file: !32, line: 16, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !65) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.88cc3346b7991af5:core.Destroy.Core", scope: null, file: !32, line: 16, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !65) // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !37) // CHECK:STDOUT: !64 = !DILocation(line: 16, column: 3, scope: !62) // CHECK:STDOUT: !65 = !{!63} diff --git a/toolchain/lower/testdata/primitives/optional.carbon b/toolchain/lower/testdata/primitives/optional.carbon index ff9c505f6621..50700c01e1cf 100644 --- a/toolchain/lower/testdata/primitives/optional.carbon +++ b/toolchain/lower/testdata/primitives/optional.carbon @@ -62,7 +62,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: source_filename = "convert.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !16 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !16 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } @@ -76,11 +76,11 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: if.then: ; preds = %entry // CHECK:STDOUT: %Optional.Get.call = call ptr @_CGet.Optional.Core.6e9e957697159b53(ptr %o), !dbg !27 // CHECK:STDOUT: %.loc5_12.2 = load i32, ptr %Optional.Get.call, align 4, !dbg !28 -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %return, i32 %.loc5_12.2), !dbg !29 +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.2c8515f957621a03"(ptr %return, i32 %.loc5_12.2), !dbg !29 // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: call void @_CNone.Optional.Core.906a4009849fb1ba(ptr %return), !dbg !32 +// CHECK:STDOUT: call void @_CNone.Optional.Core.a7c05288d2ce28bc(ptr %return), !dbg !32 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -96,106 +96,106 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: %_.var.loc17 = alloca <{ i32, i1 }>, align 4, !dbg !60 // CHECK:STDOUT: %_.var.loc18 = alloca <{ i32, i1 }>, align 4, !dbg !63 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc11), !dbg !42 -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %_.var.loc11, i32 %a), !dbg !42 +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.2c8515f957621a03"(ptr %_.var.loc11, i32 %a), !dbg !42 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc12), !dbg !45 -// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d"(ptr %_.var.loc12, i32 %a), !dbg !45 +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.15c528b24e490d8c"(ptr %_.var.loc12, i32 %a), !dbg !45 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc13), !dbg !48 -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr %_.var.loc13, i32 %a), !dbg !48 +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.d95984c7180aeb4a"(ptr %_.var.loc13, i32 %a), !dbg !48 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc14), !dbg !51 -// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4"(ptr %_.var.loc14, i32 %a), !dbg !51 +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.be8876292851c59c"(ptr %_.var.loc14, i32 %a), !dbg !51 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !54 -// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f2690ea369d3e07d"(ptr %_.var.loc15, i32 %b), !dbg !54 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.15c528b24e490d8c"(ptr %_.var.loc15, i32 %b), !dbg !54 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !57 -// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.4dfd69358d1a2477"(ptr %_.var.loc16, i32 %b), !dbg !57 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.d0ddc3b29d345eab"(ptr %_.var.loc16, i32 %b), !dbg !57 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !60 -// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.19b31b2c090374a4"(ptr %_.var.loc17, i32 %b), !dbg !60 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.be8876292851c59c"(ptr %_.var.loc17, i32 %b), !dbg !60 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18), !dbg !63 -// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f9ede611c58359e6"(ptr %_.var.loc18, i32 %b), !dbg !63 -// CHECK:STDOUT: call void @"_COp.8ca96444430cac21:core.Destroy.Core"(ptr %_.var.loc18), !dbg !63 -// CHECK:STDOUT: call void @"_COp.94cb0f9c54adf0e8:core.Destroy.Core"(ptr %_.var.loc17), !dbg !60 -// CHECK:STDOUT: call void @"_COp.2fb07d7cce7a11ab:core.Destroy.Core"(ptr %_.var.loc16), !dbg !57 -// CHECK:STDOUT: call void @"_COp.5dd68b2c45b82f63:core.Destroy.Core"(ptr %_.var.loc15), !dbg !54 -// CHECK:STDOUT: call void @"_COp.8ca96444430cac21:core.Destroy.Core"(ptr %_.var.loc14), !dbg !51 -// CHECK:STDOUT: call void @"_COp.94cb0f9c54adf0e8:core.Destroy.Core"(ptr %_.var.loc13), !dbg !48 -// CHECK:STDOUT: call void @"_COp.2fb07d7cce7a11ab:core.Destroy.Core"(ptr %_.var.loc12), !dbg !45 -// CHECK:STDOUT: call void @"_COp.5dd68b2c45b82f63:core.Destroy.Core"(ptr %_.var.loc11), !dbg !42 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.cab41ae108d94b57"(ptr %_.var.loc18, i32 %b), !dbg !63 +// CHECK:STDOUT: call void @"_COp.1e0fe05ed6c3473c:core.Destroy.Core"(ptr %_.var.loc18), !dbg !63 +// CHECK:STDOUT: call void @"_COp.7cc5a7ef6d8fa23a:core.Destroy.Core"(ptr %_.var.loc17), !dbg !60 +// CHECK:STDOUT: call void @"_COp.15cf99574c02f955:core.Destroy.Core"(ptr %_.var.loc16), !dbg !57 +// CHECK:STDOUT: call void @"_COp.6f767e5f4e4ccb02:core.Destroy.Core"(ptr %_.var.loc15), !dbg !54 +// CHECK:STDOUT: call void @"_COp.1e0fe05ed6c3473c:core.Destroy.Core"(ptr %_.var.loc14), !dbg !51 +// CHECK:STDOUT: call void @"_COp.7cc5a7ef6d8fa23a:core.Destroy.Core"(ptr %_.var.loc13), !dbg !48 +// CHECK:STDOUT: call void @"_COp.15cf99574c02f955:core.Destroy.Core"(ptr %_.var.loc12), !dbg !45 +// CHECK:STDOUT: call void @"_COp.6f767e5f4e4ccb02:core.Destroy.Core"(ptr %_.var.loc11), !dbg !42 // CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d7e4fb3943386363:core.Destroy.Core"(ptr %self) #0 !dbg !68 { +// CHECK:STDOUT: define weak_odr void @"_COp.6a8d754fe1453eab:core.Destroy.Core"(ptr %self) #0 !dbg !68 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a03c07178fa8456d:core.Destroy.Core"(ptr %self) #0 !dbg !72 { +// CHECK:STDOUT: define weak_odr void @"_COp.96a347e4ca9c10e1:core.Destroy.Core"(ptr %self) #0 !dbg !72 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f5723608e904fbe5:core.Destroy.Core"(ptr %self) #0 !dbg !76 { +// CHECK:STDOUT: define weak_odr void @"_COp.dd541bd84ebf9286:core.Destroy.Core"(ptr %self) #0 !dbg !76 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.46370f1b0ab87a42:core.Destroy.Core"(ptr %self) #0 !dbg !80 { +// CHECK:STDOUT: define weak_odr void @"_COp.0676a9513e51e534:core.Destroy.Core"(ptr %self) #0 !dbg !80 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ee28d1799e745f3:core.Destroy.Core"(ptr %self) #0 !dbg !84 { +// CHECK:STDOUT: define weak_odr void @"_COp.433638333cc50b5f:core.Destroy.Core"(ptr %self) #0 !dbg !84 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.94cb0f9c54adf0e8:core.Destroy.Core"(ptr %self) #0 !dbg !88 { +// CHECK:STDOUT: define weak_odr void @"_COp.7cc5a7ef6d8fa23a:core.Destroy.Core"(ptr %self) #0 !dbg !88 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ca96444430cac21:core.Destroy.Core"(ptr %self) #0 !dbg !92 { +// CHECK:STDOUT: define weak_odr void @"_COp.1e0fe05ed6c3473c:core.Destroy.Core"(ptr %self) #0 !dbg !92 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !96 { +// CHECK:STDOUT: define weak_odr void @"_COp.1d6a7672bf2f14c6:core.Destroy.Core"(ptr %self) #0 !dbg !96 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !100 { +// CHECK:STDOUT: define weak_odr void @"_COp.c1dffdf44e31057b:core.Destroy.Core"(ptr %self) #0 !dbg !100 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !102 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !104 { +// CHECK:STDOUT: define weak_odr void @"_COp.271d79a4f33942b3:core.Destroy.Core"(ptr %self) #0 !dbg !104 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2222b8b3794fd8f9:core.Destroy.Core"(ptr %self) #0 !dbg !108 { +// CHECK:STDOUT: define weak_odr void @"_COp.99ef0e8e0bc11e6b:core.Destroy.Core"(ptr %self) #0 !dbg !108 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5dd68b2c45b82f63:core.Destroy.Core"(ptr %self) #0 !dbg !112 { +// CHECK:STDOUT: define weak_odr void @"_COp.6f767e5f4e4ccb02:core.Destroy.Core"(ptr %self) #0 !dbg !112 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2fb07d7cce7a11ab:core.Destroy.Core"(ptr %self) #0 !dbg !116 { +// CHECK:STDOUT: define weak_odr void @"_COp.15cf99574c02f955:core.Destroy.Core"(ptr %self) #0 !dbg !116 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !118 // CHECK:STDOUT: } @@ -213,14 +213,14 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !139 { -// CHECK:STDOUT: call void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.906a4009849fb1ba"(ptr %return, i32 %self), !dbg !144 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.2c8515f957621a03"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !139 { +// CHECK:STDOUT: call void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.a7c05288d2ce28bc"(ptr %return, i32 %self), !dbg !144 // CHECK:STDOUT: ret void, !dbg !145 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.906a4009849fb1ba(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !147 { -// CHECK:STDOUT: call void @"_CNone.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr %return), !dbg !150 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a7c05288d2ce28bc(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !147 { +// CHECK:STDOUT: call void @"_CNone.74becf39533834ee:OptionalStorage.Core.32f25dd70ba991cc"(ptr %return), !dbg !150 // CHECK:STDOUT: ret void, !dbg !151 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -228,44 +228,44 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !153 { -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %return, i32 %self), !dbg !158 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.15c528b24e490d8c"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !153 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.2c8515f957621a03"(ptr %return, i32 %self), !dbg !158 // CHECK:STDOUT: ret void, !dbg !159 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !161 { -// CHECK:STDOUT: call void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.c9c7306e533f1643"(ptr %return, i32 %self), !dbg !166 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.d95984c7180aeb4a"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !161 { +// CHECK:STDOUT: call void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.dddd9c9f66eb3452"(ptr %return, i32 %self), !dbg !166 // CHECK:STDOUT: ret void, !dbg !167 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !169 { -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr %return, i32 %self), !dbg !174 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.be8876292851c59c"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !169 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.d95984c7180aeb4a"(ptr %return, i32 %self), !dbg !174 // CHECK:STDOUT: ret void, !dbg !175 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f2690ea369d3e07d"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !177 { -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %return, i32 %self), !dbg !183 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.15c528b24e490d8c"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !177 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.2c8515f957621a03"(ptr %return, i32 %self), !dbg !183 // CHECK:STDOUT: ret void, !dbg !184 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.4dfd69358d1a2477"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !186 { -// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d"(ptr %return, i32 %self), !dbg !192 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.d0ddc3b29d345eab"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !186 { +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.15c528b24e490d8c"(ptr %return, i32 %self), !dbg !192 // CHECK:STDOUT: ret void, !dbg !193 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.19b31b2c090374a4"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !195 { -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr %return, i32 %self), !dbg !201 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.be8876292851c59c"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !195 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.d95984c7180aeb4a"(ptr %return, i32 %self), !dbg !201 // CHECK:STDOUT: ret void, !dbg !202 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f9ede611c58359e6"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !204 { -// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4"(ptr %return, i32 %self), !dbg !210 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.cab41ae108d94b57"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !204 { +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.be8876292851c59c"(ptr %return, i32 %self), !dbg !210 // CHECK:STDOUT: ret void, !dbg !211 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -282,33 +282,33 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.906a4009849fb1ba"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !231 { -// CHECK:STDOUT: call void @_CSome.Optional.Core.906a4009849fb1ba(ptr %return, i32 %self), !dbg !237 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.a7c05288d2ce28bc"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !231 { +// CHECK:STDOUT: call void @_CSome.Optional.Core.a7c05288d2ce28bc(ptr %return, i32 %self), !dbg !237 // CHECK:STDOUT: ret void, !dbg !238 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !240 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.74becf39533834ee:OptionalStorage.Core.32f25dd70ba991cc"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !240 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !247 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !247 // CHECK:STDOUT: ret void, !dbg !248 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.c9c7306e533f1643"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !249 { +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.dddd9c9f66eb3452"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !249 { // CHECK:STDOUT: %temp = alloca i32, align 4, !dbg !254 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !254 // CHECK:STDOUT: %1 = call i32 @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.ba7abeb9eee545e2"(i32 %self), !dbg !254 // CHECK:STDOUT: store i32 %1, ptr %temp, align 4, !dbg !254 // CHECK:STDOUT: %2 = load i32, ptr %temp, align 4, !dbg !254 -// CHECK:STDOUT: call void @_CSome.Optional.Core.7e0c2c3b236f4238(ptr %return, i32 %2), !dbg !255 -// CHECK:STDOUT: call void @"_COp.d7e4fb3943386363:core.Destroy.Core"(ptr %temp), !dbg !254 +// CHECK:STDOUT: call void @_CSome.Optional.Core.0ba9b301f5e251fb(ptr %return, i32 %2), !dbg !255 +// CHECK:STDOUT: call void @"_COp.6a8d754fe1453eab:core.Destroy.Core"(ptr %temp), !dbg !254 // CHECK:STDOUT: ret void, !dbg !256 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.906a4009849fb1ba(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !258 { -// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr %return, i32 %value), !dbg !263 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a7c05288d2ce28bc(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !258 { +// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.32f25dd70ba991cc"(ptr %return, i32 %value), !dbg !263 // CHECK:STDOUT: ret void, !dbg !264 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -319,13 +319,13 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.7e0c2c3b236f4238(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !276 { -// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.e5790a708f1bcd86"(ptr %return, i32 %value), !dbg !281 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.0ba9b301f5e251fb(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !276 { +// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.075be0912516882a"(ptr %return, i32 %value), !dbg !281 // CHECK:STDOUT: ret void, !dbg !282 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !284 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.32f25dd70ba991cc"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !284 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !293 // CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !293 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !295 @@ -340,7 +340,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.e5790a708f1bcd86"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !308 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.075be0912516882a"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !308 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !317 // CHECK:STDOUT: %1 = call i32 @"_COp.a7c16f707f533a23:Copy.Core.4d6ceefeb7f772f4"(i32 %self), !dbg !318 // CHECK:STDOUT: store i32 %1, ptr %value, align 4, !dbg !317 @@ -360,11 +360,11 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.94cb0f9c54adf0e8:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.8ca96444430cac21:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.5dd68b2c45b82f63:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.2fb07d7cce7a11ab:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e", { 0, 1, 3, 2 } +// CHECK:STDOUT: uselistorder ptr @"_COp.7cc5a7ef6d8fa23a:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.1e0fe05ed6c3473c:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.6f767e5f4e4ccb02:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.15cf99574c02f955:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.2c8515f957621a03", { 0, 1, 3, 2 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 8, 7, 6, 5, 4, 3, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -387,7 +387,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !13 = !DISubroutineType(types: !12) // CHECK:STDOUT: !14 = !{null, !9} // CHECK:STDOUT: !15 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 3, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !19) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 3, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !19) // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !16, type: !6) // CHECK:STDOUT: !18 = !DILocation(line: 3, column: 39, scope: !16) // CHECK:STDOUT: !19 = !{!17} @@ -418,55 +418,55 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !63 = !DILocation(line: 18, column: 3, scope: !37) // CHECK:STDOUT: !66 = !DILocation(line: 10, column: 1, scope: !37) // CHECK:STDOUT: !67 = !{!38, !39} -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d7e4fb3943386363:core.Destroy.Core", scope: null, file: !4, line: 13, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !71) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a8d754fe1453eab:core.Destroy.Core", scope: null, file: !4, line: 13, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !71) // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !9) // CHECK:STDOUT: !70 = !DILocation(line: 13, column: 10, scope: !68) // CHECK:STDOUT: !71 = !{!69} -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a03c07178fa8456d:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !75) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Op", linkageName: "_COp.96a347e4ca9c10e1:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !75) // CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !9) // CHECK:STDOUT: !74 = !DILocation(line: 18, column: 3, scope: !72) // CHECK:STDOUT: !75 = !{!73} -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5723608e904fbe5:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !79) +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dd541bd84ebf9286:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !79) // CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !76, type: !9) // CHECK:STDOUT: !78 = !DILocation(line: 18, column: 3, scope: !76) // CHECK:STDOUT: !79 = !{!77} -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Op", linkageName: "_COp.46370f1b0ab87a42:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !83) +// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0676a9513e51e534:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !83) // CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !80, type: !9) // CHECK:STDOUT: !82 = !DILocation(line: 18, column: 3, scope: !80) // CHECK:STDOUT: !83 = !{!81} -// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ee28d1799e745f3:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !87) +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "Op", linkageName: "_COp.433638333cc50b5f:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !87) // CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !84, type: !9) // CHECK:STDOUT: !86 = !DILocation(line: 18, column: 3, scope: !84) // CHECK:STDOUT: !87 = !{!85} -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "Op", linkageName: "_COp.94cb0f9c54adf0e8:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !91) +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7cc5a7ef6d8fa23a:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !91) // CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !88, type: !9) // CHECK:STDOUT: !90 = !DILocation(line: 18, column: 3, scope: !88) // CHECK:STDOUT: !91 = !{!89} -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ca96444430cac21:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !95) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e0fe05ed6c3473c:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !95) // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !92, type: !9) // CHECK:STDOUT: !94 = !DILocation(line: 18, column: 3, scope: !92) // CHECK:STDOUT: !95 = !{!93} -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !99) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1d6a7672bf2f14c6:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !99) // CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !9) // CHECK:STDOUT: !98 = !DILocation(line: 16, column: 3, scope: !96) // CHECK:STDOUT: !99 = !{!97} -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !4, line: 16, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !103) +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c1dffdf44e31057b:core.Destroy.Core", scope: null, file: !4, line: 16, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !103) // CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !100, type: !6) // CHECK:STDOUT: !102 = !DILocation(line: 16, column: 3, scope: !100) // CHECK:STDOUT: !103 = !{!101} -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !107) +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Op", linkageName: "_COp.271d79a4f33942b3:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !107) // CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !104, type: !9) // CHECK:STDOUT: !106 = !DILocation(line: 16, column: 3, scope: !104) // CHECK:STDOUT: !107 = !{!105} -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2222b8b3794fd8f9:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !111) +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.99ef0e8e0bc11e6b:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !111) // CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !108, type: !9) // CHECK:STDOUT: !110 = !DILocation(line: 16, column: 3, scope: !108) // CHECK:STDOUT: !111 = !{!109} -// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5dd68b2c45b82f63:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !115) +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6f767e5f4e4ccb02:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !115) // CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !9) // CHECK:STDOUT: !114 = !DILocation(line: 16, column: 3, scope: !112) // CHECK:STDOUT: !115 = !{!113} -// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2fb07d7cce7a11ab:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !119) +// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "Op", linkageName: "_COp.15cf99574c02f955:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !119) // CHECK:STDOUT: !117 = !DILocalVariable(arg: 1, scope: !116, type: !9) // CHECK:STDOUT: !118 = !DILocation(line: 16, column: 3, scope: !116) // CHECK:STDOUT: !119 = !{!117} @@ -481,46 +481,46 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !136 = !DILocation(line: 40, column: 12, scope: !130) // CHECK:STDOUT: !137 = !DILocation(line: 40, column: 5, scope: !130) // CHECK:STDOUT: !138 = !{!131} -// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e", scope: null, file: !120, line: 105, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !146) +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.2c8515f957621a03", scope: null, file: !120, line: 105, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !146) // CHECK:STDOUT: !140 = !DILocalVariable(arg: 1, scope: !139, type: !6) // CHECK:STDOUT: !144 = !DILocation(line: 106, column: 12, scope: !139) // CHECK:STDOUT: !145 = !DILocation(line: 106, column: 5, scope: !139) // CHECK:STDOUT: !146 = !{!140} -// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.906a4009849fb1ba", scope: null, file: !120, line: 30, type: !34, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a7c05288d2ce28bc", scope: null, file: !120, line: 30, type: !34, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !150 = !DILocation(line: 31, column: 12, scope: !147) // CHECK:STDOUT: !151 = !DILocation(line: 31, column: 5, scope: !147) // CHECK:STDOUT: !152 = !DIFile(filename: "{{.*}}/prelude/operators/as.carbon", directory: "") -// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d", scope: null, file: !152, line: 43, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !160) +// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.15c528b24e490d8c", scope: null, file: !152, line: 43, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !160) // CHECK:STDOUT: !154 = !DILocalVariable(arg: 1, scope: !153, type: !6) // CHECK:STDOUT: !158 = !DILocation(line: 43, column: 40, scope: !153) // CHECK:STDOUT: !159 = !DILocation(line: 43, column: 33, scope: !153) // CHECK:STDOUT: !160 = !{!154} -// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9", scope: null, file: !120, line: 105, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !168) +// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.d95984c7180aeb4a", scope: null, file: !120, line: 105, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !168) // CHECK:STDOUT: !162 = !DILocalVariable(arg: 1, scope: !161, type: !6) // CHECK:STDOUT: !166 = !DILocation(line: 106, column: 12, scope: !161) // CHECK:STDOUT: !167 = !DILocation(line: 106, column: 5, scope: !161) // CHECK:STDOUT: !168 = !{!162} -// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4", scope: null, file: !152, line: 43, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !176) +// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.be8876292851c59c", scope: null, file: !152, line: 43, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !176) // CHECK:STDOUT: !170 = !DILocalVariable(arg: 1, scope: !169, type: !6) // CHECK:STDOUT: !174 = !DILocation(line: 43, column: 40, scope: !169) // CHECK:STDOUT: !175 = !DILocation(line: 43, column: 33, scope: !169) // CHECK:STDOUT: !176 = !{!170} -// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f2690ea369d3e07d", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !185) +// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.15c528b24e490d8c", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !185) // CHECK:STDOUT: !178 = !DILocalVariable(arg: 1, scope: !177, type: !6) // CHECK:STDOUT: !183 = !DILocation(line: 47, column: 34, scope: !177) // CHECK:STDOUT: !184 = !DILocation(line: 47, column: 27, scope: !177) // CHECK:STDOUT: !185 = !{!178} -// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.4dfd69358d1a2477", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !194) +// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.d0ddc3b29d345eab", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !194) // CHECK:STDOUT: !187 = !DILocalVariable(arg: 1, scope: !186, type: !6) // CHECK:STDOUT: !192 = !DILocation(line: 47, column: 34, scope: !186) // CHECK:STDOUT: !193 = !DILocation(line: 47, column: 27, scope: !186) // CHECK:STDOUT: !194 = !{!187} -// CHECK:STDOUT: !195 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.19b31b2c090374a4", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !203) +// CHECK:STDOUT: !195 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.be8876292851c59c", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !203) // CHECK:STDOUT: !196 = !DILocalVariable(arg: 1, scope: !195, type: !6) // CHECK:STDOUT: !201 = !DILocation(line: 47, column: 34, scope: !195) // CHECK:STDOUT: !202 = !DILocation(line: 47, column: 27, scope: !195) // CHECK:STDOUT: !203 = !{!196} -// CHECK:STDOUT: !204 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f9ede611c58359e6", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !212) +// CHECK:STDOUT: !204 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.cab41ae108d94b57", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !212) // CHECK:STDOUT: !205 = !DILocalVariable(arg: 1, scope: !204, type: !6) // CHECK:STDOUT: !210 = !DILocation(line: 47, column: 34, scope: !204) // CHECK:STDOUT: !211 = !DILocation(line: 47, column: 27, scope: !204) @@ -535,21 +535,21 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !224 = !DILocalVariable(arg: 1, scope: !223, type: !9) // CHECK:STDOUT: !229 = !DILocation(line: 176, column: 5, scope: !223) // CHECK:STDOUT: !230 = !{!224} -// CHECK:STDOUT: !231 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.906a4009849fb1ba", scope: null, file: !120, line: 80, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !239) +// CHECK:STDOUT: !231 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.a7c05288d2ce28bc", scope: null, file: !120, line: 80, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !239) // CHECK:STDOUT: !232 = !DILocalVariable(arg: 1, scope: !231, type: !6) // CHECK:STDOUT: !237 = !DILocation(line: 81, column: 12, scope: !231) // CHECK:STDOUT: !238 = !DILocation(line: 81, column: 5, scope: !231) // CHECK:STDOUT: !239 = !{!232} -// CHECK:STDOUT: !240 = distinct !DISubprogram(name: "None", linkageName: "_CNone.74becf39533834ee:OptionalStorage.Core.694f9f022249e533", scope: null, file: !120, line: 125, type: !34, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !240 = distinct !DISubprogram(name: "None", linkageName: "_CNone.74becf39533834ee:OptionalStorage.Core.32f25dd70ba991cc", scope: null, file: !120, line: 125, type: !34, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !247 = !DILocation(line: 128, column: 5, scope: !240) // CHECK:STDOUT: !248 = !DILocation(line: 129, column: 5, scope: !240) -// CHECK:STDOUT: !249 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.c9c7306e533f1643", scope: null, file: !120, line: 87, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !257) +// CHECK:STDOUT: !249 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.dddd9c9f66eb3452", scope: null, file: !120, line: 87, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !257) // CHECK:STDOUT: !250 = !DILocalVariable(arg: 1, scope: !249, type: !6) // CHECK:STDOUT: !254 = !DILocation(line: 88, column: 29, scope: !249) // CHECK:STDOUT: !255 = !DILocation(line: 88, column: 12, scope: !249) // CHECK:STDOUT: !256 = !DILocation(line: 88, column: 5, scope: !249) // CHECK:STDOUT: !257 = !{!250} -// CHECK:STDOUT: !258 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.906a4009849fb1ba", scope: null, file: !120, line: 33, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !265) +// CHECK:STDOUT: !258 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a7c05288d2ce28bc", scope: null, file: !120, line: 33, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !265) // CHECK:STDOUT: !259 = !DILocalVariable(arg: 1, scope: !258, type: !6) // CHECK:STDOUT: !263 = !DILocation(line: 34, column: 12, scope: !258) // CHECK:STDOUT: !264 = !DILocation(line: 34, column: 5, scope: !258) @@ -561,12 +561,12 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !273 = !DISubroutineType(types: !272) // CHECK:STDOUT: !274 = !DILocation(line: 43, column: 33, scope: !266) // CHECK:STDOUT: !275 = !{!267} -// CHECK:STDOUT: !276 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.7e0c2c3b236f4238", scope: null, file: !120, line: 33, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !283) +// CHECK:STDOUT: !276 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.0ba9b301f5e251fb", scope: null, file: !120, line: 33, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !283) // CHECK:STDOUT: !277 = !DILocalVariable(arg: 1, scope: !276, type: !6) // CHECK:STDOUT: !281 = !DILocation(line: 34, column: 12, scope: !276) // CHECK:STDOUT: !282 = !DILocation(line: 34, column: 5, scope: !276) // CHECK:STDOUT: !283 = !{!277} -// CHECK:STDOUT: !284 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.694f9f022249e533", scope: null, file: !120, line: 131, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !297) +// CHECK:STDOUT: !284 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.32f25dd70ba991cc", scope: null, file: !120, line: 131, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !297) // CHECK:STDOUT: !285 = !DILocalVariable(arg: 1, scope: !284, type: !6) // CHECK:STDOUT: !293 = !DILocation(line: 137, column: 5, scope: !284) // CHECK:STDOUT: !295 = !DILocation(line: 138, column: 5, scope: !284) @@ -578,7 +578,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !304 = !DILocation(line: 66, column: 17, scope: !299) // CHECK:STDOUT: !306 = !DILocation(line: 66, column: 5, scope: !299) // CHECK:STDOUT: !307 = !{!300} -// CHECK:STDOUT: !308 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.e5790a708f1bcd86", scope: null, file: !120, line: 131, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !321) +// CHECK:STDOUT: !308 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.075be0912516882a", scope: null, file: !120, line: 131, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !321) // CHECK:STDOUT: !309 = !DILocalVariable(arg: 1, scope: !308, type: !6) // CHECK:STDOUT: !317 = !DILocation(line: 137, column: 5, scope: !308) // CHECK:STDOUT: !318 = !DILocation(line: 137, column: 28, scope: !308) @@ -602,7 +602,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: declare void @"_COp.Copyable.Main:Copy.Core"(ptr sret({}), ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.37e3a2472db2fbb6:core.Destroy.Core"(ptr %self) #0 !dbg !342 { +// CHECK:STDOUT: define weak_odr void @"_COp.bb3dd30fa3a4aa62:core.Destroy.Core"(ptr %self) #0 !dbg !342 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !344 // CHECK:STDOUT: } @@ -610,33 +610,33 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main(ptr sret({ {}, i1 }) %return, ptr %c) #0 !dbg !346 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.b16495584c7c5967"(ptr %return, ptr %c), !dbg !351 +// CHECK:STDOUT: call void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.b03b221dea5a68ac"(ptr %return, ptr %c), !dbg !351 // CHECK:STDOUT: ret void, !dbg !352 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.b16495584c7c5967"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !354 { -// CHECK:STDOUT: call void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %return, ptr %self), !dbg !360 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.b03b221dea5a68ac"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !354 { +// CHECK:STDOUT: call void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad"(ptr %return, ptr %self), !dbg !360 // CHECK:STDOUT: ret void, !dbg !361 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr sret({ {}, i1 }) %return, ptr %value) #0 !dbg !363 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %value), !dbg !369 +// CHECK:STDOUT: define linkonce_odr void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad"(ptr sret({ {}, i1 }) %return, ptr %value) #0 !dbg !363 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad"(ptr %value), !dbg !369 // CHECK:STDOUT: br i1 %1, label %2, label %3, !dbg !370 // CHECK:STDOUT: // CHECK:STDOUT: 2: ; preds = %0 // CHECK:STDOUT: %value1 = getelementptr inbounds nuw { {}, i1 }, ptr %value, i32 0, i32 0, !dbg !371 -// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %return, ptr %value1), !dbg !372 +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad"(ptr %return, ptr %value1), !dbg !372 // CHECK:STDOUT: ret void, !dbg !373 // CHECK:STDOUT: // CHECK:STDOUT: 3: ; preds = %0 -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %return), !dbg !374 +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad"(ptr %return), !dbg !374 // CHECK:STDOUT: ret void, !dbg !375 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %value) #0 !dbg !377 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad"(ptr %value) #0 !dbg !377 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %value, i32 0, i32 1, !dbg !382 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !382 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !382 @@ -644,7 +644,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !385 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !385 { // CHECK:STDOUT: %value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 0, !dbg !394 // CHECK:STDOUT: call void @"_COp.Copyable.Main:Copy.Core"(ptr %value, ptr %self), !dbg !395 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 1, !dbg !396 @@ -653,7 +653,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr sret({ {}, i1 }) %return) #0 !dbg !399 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad"(ptr sret({ {}, i1 }) %return) #0 !dbg !399 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 1, !dbg !406 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !406 // CHECK:STDOUT: ret void, !dbg !407 @@ -676,7 +676,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !120 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !340 = !DIFile(filename: "copy.carbon", directory: "") // CHECK:STDOUT: !341 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !340, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !342 = distinct !DISubprogram(name: "Op", linkageName: "_COp.37e3a2472db2fbb6:core.Destroy.Core", scope: null, file: !340, line: 9, type: !15, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !345) +// CHECK:STDOUT: !342 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bb3dd30fa3a4aa62:core.Destroy.Core", scope: null, file: !340, line: 9, type: !15, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !345) // CHECK:STDOUT: !343 = !DILocalVariable(arg: 1, scope: !342, type: !9) // CHECK:STDOUT: !344 = !DILocation(line: 9, column: 9, scope: !342) // CHECK:STDOUT: !345 = !{!343} @@ -685,12 +685,12 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !351 = !DILocation(line: 11, column: 10, scope: !346) // CHECK:STDOUT: !352 = !DILocation(line: 11, column: 3, scope: !346) // CHECK:STDOUT: !353 = !{!347} -// CHECK:STDOUT: !354 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.24b7347a93330e68.Core:Copy.Core.b16495584c7c5967", scope: null, file: !120, line: 50, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !362) +// CHECK:STDOUT: !354 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.24b7347a93330e68.Core:Copy.Core.b03b221dea5a68ac", scope: null, file: !120, line: 50, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !362) // CHECK:STDOUT: !355 = !DILocalVariable(arg: 1, scope: !354, type: !9) // CHECK:STDOUT: !360 = !DILocation(line: 51, column: 12, scope: !354) // CHECK:STDOUT: !361 = !DILocation(line: 51, column: 5, scope: !354) // CHECK:STDOUT: !362 = !{!355} -// CHECK:STDOUT: !363 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !120, line: 147, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !376) +// CHECK:STDOUT: !363 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad", scope: null, file: !120, line: 147, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !376) // CHECK:STDOUT: !364 = !DILocalVariable(arg: 1, scope: !363, type: !9) // CHECK:STDOUT: !369 = !DILocation(line: 148, column: 9, scope: !363) // CHECK:STDOUT: !370 = !DILocation(line: 148, column: 8, scope: !363) @@ -700,19 +700,19 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !374 = !DILocation(line: 151, column: 14, scope: !363) // CHECK:STDOUT: !375 = !DILocation(line: 151, column: 7, scope: !363) // CHECK:STDOUT: !376 = !{!364} -// CHECK:STDOUT: !377 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !120, line: 141, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !384) +// CHECK:STDOUT: !377 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad", scope: null, file: !120, line: 141, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !384) // CHECK:STDOUT: !378 = !DILocalVariable(arg: 1, scope: !377, type: !9) // CHECK:STDOUT: !382 = !DILocation(line: 142, column: 12, scope: !377) // CHECK:STDOUT: !383 = !DILocation(line: 142, column: 5, scope: !377) // CHECK:STDOUT: !384 = !{!378} -// CHECK:STDOUT: !385 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !120, line: 131, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !398) +// CHECK:STDOUT: !385 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad", scope: null, file: !120, line: 131, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !398) // CHECK:STDOUT: !386 = !DILocalVariable(arg: 1, scope: !385, type: !9) // CHECK:STDOUT: !394 = !DILocation(line: 137, column: 5, scope: !385) // CHECK:STDOUT: !395 = !DILocation(line: 137, column: 28, scope: !385) // CHECK:STDOUT: !396 = !DILocation(line: 138, column: 5, scope: !385) // CHECK:STDOUT: !397 = !DILocation(line: 139, column: 5, scope: !385) // CHECK:STDOUT: !398 = !{!386} -// CHECK:STDOUT: !399 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !120, line: 125, type: !34, spFlags: DISPFlagDefinition, unit: !341) +// CHECK:STDOUT: !399 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.14f4319dcea949ad", scope: null, file: !120, line: 125, type: !34, spFlags: DISPFlagDefinition, unit: !341) // CHECK:STDOUT: !406 = !DILocation(line: 128, column: 5, scope: !399) // CHECK:STDOUT: !407 = !DILocation(line: 129, column: 5, scope: !399) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/return_var_byval.carbon b/toolchain/lower/testdata/return/return_var_byval.carbon index 156a6460c896..183c9f867da3 100644 --- a/toolchain/lower/testdata/return/return_var_byval.carbon +++ b/toolchain/lower/testdata/return/return_var_byval.carbon @@ -26,12 +26,12 @@ fn Main() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !28 // CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !28 // CHECK:STDOUT: %.loc14_17 = load i32, ptr %x.var, align 4, !dbg !29 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !28 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %x.var), !dbg !28 // CHECK:STDOUT: ret i32 %.loc14_17, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } @@ -58,7 +58,7 @@ fn Main() -> i32 { // CHECK:STDOUT: !28 = !DILocation(line: 14, column: 12, scope: !25) // CHECK:STDOUT: !29 = !DILocation(line: 14, column: 16, scope: !25) // CHECK:STDOUT: !31 = !DILocation(line: 15, column: 3, scope: !25) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !20) // CHECK:STDOUT: !34 = !DILocation(line: 14, column: 12, scope: !32) // CHECK:STDOUT: !35 = !{!33} diff --git a/toolchain/lower/testdata/return/var.carbon b/toolchain/lower/testdata/return/var.carbon index c93245b1ea24..9ffa9d8fb6c2 100644 --- a/toolchain/lower/testdata/return/var.carbon +++ b/toolchain/lower/testdata/return/var.carbon @@ -26,12 +26,12 @@ fn Main() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !28 // CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !28 // CHECK:STDOUT: %.loc15 = load i32, ptr %x.var, align 4, !dbg !30 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !28 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %x.var), !dbg !28 // CHECK:STDOUT: ret i32 %.loc15, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } @@ -58,7 +58,7 @@ fn Main() -> i32 { // CHECK:STDOUT: !28 = !DILocation(line: 14, column: 3, scope: !25) // CHECK:STDOUT: !30 = !DILocation(line: 15, column: 10, scope: !25) // CHECK:STDOUT: !31 = !DILocation(line: 15, column: 3, scope: !25) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !20) // CHECK:STDOUT: !34 = !DILocation(line: 14, column: 3, scope: !32) // CHECK:STDOUT: !35 = !{!33} diff --git a/toolchain/lower/testdata/struct/layout.carbon b/toolchain/lower/testdata/struct/layout.carbon index 375037d5260b..4f44858a78fa 100644 --- a/toolchain/lower/testdata/struct/layout.carbon +++ b/toolchain/lower/testdata/struct/layout.carbon @@ -90,18 +90,18 @@ fn F() { // CHECK:STDOUT: call void @_CG.Main(ptr %.loc9.y), !dbg !36 // CHECK:STDOUT: %.loc10.z = getelementptr inbounds nuw { i32, i32, i32 }, ptr %no_padding.var, i32 0, i32 2, !dbg !37 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.z), !dbg !39 -// CHECK:STDOUT: call void @"_COp.ef264ddbcdaf6301:core.Destroy.Core"(ptr %no_padding.var), !dbg !29 +// CHECK:STDOUT: call void @"_COp.cc12b768126bed5c:core.Destroy.Core"(ptr %no_padding.var), !dbg !29 // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ef264ddbcdaf6301:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.cc12b768126bed5c:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } @@ -136,11 +136,11 @@ fn F() { // CHECK:STDOUT: !37 = !DILocation(line: 10, column: 6, scope: !28) // CHECK:STDOUT: !39 = !DILocation(line: 10, column: 3, scope: !28) // CHECK:STDOUT: !40 = !DILocation(line: 5, column: 1, scope: !28) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !20) // CHECK:STDOUT: !43 = !DILocation(line: 7, column: 3, scope: !41) // CHECK:STDOUT: !44 = !{!42} -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ef264ddbcdaf6301:core.Destroy.Core", scope: null, file: !18, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cc12b768126bed5c:core.Destroy.Core", scope: null, file: !18, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) // CHECK:STDOUT: !47 = !DILocation(line: 7, column: 3, scope: !45) // CHECK:STDOUT: !48 = !{!46} @@ -158,18 +158,18 @@ fn F() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %avoid_tail_padding.var), !dbg !52 // CHECK:STDOUT: %.loc8.y = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %avoid_tail_padding.var, i32 0, i32 1, !dbg !54 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc8.y), !dbg !56 -// CHECK:STDOUT: call void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %avoid_tail_padding.var), !dbg !52 +// CHECK:STDOUT: call void @"_COp.90798694d9a177e6:core.Destroy.Core"(ptr %avoid_tail_padding.var), !dbg !52 // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !58 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !58 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %self) #0 !dbg !62 { +// CHECK:STDOUT: define weak_odr void @"_COp.90798694d9a177e6:core.Destroy.Core"(ptr %self) #0 !dbg !62 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } @@ -200,11 +200,11 @@ fn F() { // CHECK:STDOUT: !54 = !DILocation(line: 8, column: 6, scope: !51) // CHECK:STDOUT: !56 = !DILocation(line: 8, column: 3, scope: !51) // CHECK:STDOUT: !57 = !DILocation(line: 5, column: 1, scope: !51) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !49, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !50, retainedNodes: !61) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !49, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !50, retainedNodes: !61) // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !20) // CHECK:STDOUT: !60 = !DILocation(line: 7, column: 3, scope: !58) // CHECK:STDOUT: !61 = !{!59} -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.39f44b5e2be36eae:core.Destroy.Core", scope: null, file: !49, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !50, retainedNodes: !65) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.90798694d9a177e6:core.Destroy.Core", scope: null, file: !49, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !50, retainedNodes: !65) // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !21) // CHECK:STDOUT: !64 = !DILocation(line: 7, column: 3, scope: !62) // CHECK:STDOUT: !65 = !{!63} @@ -225,24 +225,24 @@ fn F() { // CHECK:STDOUT: call void @_CG.Main(ptr %.loc9_24.y), !dbg !73 // CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw { <{ ptr, i32 }>, i32 }, ptr %use_tail_padding.var, i32 0, i32 1, !dbg !74 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !76 -// CHECK:STDOUT: call void @"_COp.43335663c40fb4bc:core.Destroy.Core"(ptr %use_tail_padding.var), !dbg !69 +// CHECK:STDOUT: call void @"_COp.3862e4ac11efcf1c:core.Destroy.Core"(ptr %use_tail_padding.var), !dbg !69 // CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !78 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !78 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %self) #0 !dbg !82 { +// CHECK:STDOUT: define weak_odr void @"_COp.90798694d9a177e6:core.Destroy.Core"(ptr %self) #0 !dbg !82 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.43335663c40fb4bc:core.Destroy.Core"(ptr %self) #0 !dbg !86 { +// CHECK:STDOUT: define weak_odr void @"_COp.3862e4ac11efcf1c:core.Destroy.Core"(ptr %self) #0 !dbg !86 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } @@ -275,15 +275,15 @@ fn F() { // CHECK:STDOUT: !74 = !DILocation(line: 10, column: 6, scope: !68) // CHECK:STDOUT: !76 = !DILocation(line: 10, column: 3, scope: !68) // CHECK:STDOUT: !77 = !DILocation(line: 5, column: 1, scope: !68) -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !66, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !81) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !66, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !81) // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !20) // CHECK:STDOUT: !80 = !DILocation(line: 8, column: 3, scope: !78) // CHECK:STDOUT: !81 = !{!79} -// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Op", linkageName: "_COp.39f44b5e2be36eae:core.Destroy.Core", scope: null, file: !66, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !85) +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Op", linkageName: "_COp.90798694d9a177e6:core.Destroy.Core", scope: null, file: !66, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !85) // CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !21) // CHECK:STDOUT: !84 = !DILocation(line: 8, column: 3, scope: !82) // CHECK:STDOUT: !85 = !{!83} -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.43335663c40fb4bc:core.Destroy.Core", scope: null, file: !66, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !89) +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3862e4ac11efcf1c:core.Destroy.Core", scope: null, file: !66, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !89) // CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !21) // CHECK:STDOUT: !88 = !DILocation(line: 8, column: 3, scope: !86) // CHECK:STDOUT: !89 = !{!87} @@ -304,24 +304,24 @@ fn F() { // CHECK:STDOUT: call void @_CG.Main(ptr %.loc9_24.x), !dbg !97 // CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw { <{ ptr, i32 }>, ptr }, ptr %implicit_padding.var, i32 0, i32 1, !dbg !98 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !100 -// CHECK:STDOUT: call void @"_COp.bbaa45a6eaf1eb33:core.Destroy.Core"(ptr %implicit_padding.var), !dbg !93 +// CHECK:STDOUT: call void @"_COp.fb4d9eb13d71ce13:core.Destroy.Core"(ptr %implicit_padding.var), !dbg !93 // CHECK:STDOUT: ret void, !dbg !101 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !102 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !102 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %self) #0 !dbg !106 { +// CHECK:STDOUT: define weak_odr void @"_COp.90798694d9a177e6:core.Destroy.Core"(ptr %self) #0 !dbg !106 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !108 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bbaa45a6eaf1eb33:core.Destroy.Core"(ptr %self) #0 !dbg !110 { +// CHECK:STDOUT: define weak_odr void @"_COp.fb4d9eb13d71ce13:core.Destroy.Core"(ptr %self) #0 !dbg !110 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !112 // CHECK:STDOUT: } @@ -354,15 +354,15 @@ fn F() { // CHECK:STDOUT: !98 = !DILocation(line: 10, column: 6, scope: !92) // CHECK:STDOUT: !100 = !DILocation(line: 10, column: 3, scope: !92) // CHECK:STDOUT: !101 = !DILocation(line: 5, column: 1, scope: !92) -// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !90, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !105) +// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !90, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !105) // CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !20) // CHECK:STDOUT: !104 = !DILocation(line: 8, column: 3, scope: !102) // CHECK:STDOUT: !105 = !{!103} -// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.39f44b5e2be36eae:core.Destroy.Core", scope: null, file: !90, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !109) +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.90798694d9a177e6:core.Destroy.Core", scope: null, file: !90, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !109) // CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !21) // CHECK:STDOUT: !108 = !DILocation(line: 8, column: 3, scope: !106) // CHECK:STDOUT: !109 = !{!107} -// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbaa45a6eaf1eb33:core.Destroy.Core", scope: null, file: !90, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !113) +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fb4d9eb13d71ce13:core.Destroy.Core", scope: null, file: !90, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !113) // CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !110, type: !21) // CHECK:STDOUT: !112 = !DILocation(line: 8, column: 3, scope: !110) // CHECK:STDOUT: !113 = !{!111} @@ -380,24 +380,24 @@ fn F() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %insert_padding.var), !dbg !117 // CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw <{ <{ { i32, i32, i32 }, [4 x i8] }>, ptr, i32 }>, ptr %insert_padding.var, i32 0, i32 1, !dbg !119 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !121 -// CHECK:STDOUT: call void @"_COp.97f42b497d28c70c:core.Destroy.Core"(ptr %insert_padding.var), !dbg !117 +// CHECK:STDOUT: call void @"_COp.b496992173693e26:core.Destroy.Core"(ptr %insert_padding.var), !dbg !117 // CHECK:STDOUT: ret void, !dbg !122 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !123 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !123 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ef264ddbcdaf6301:core.Destroy.Core"(ptr %self) #0 !dbg !127 { +// CHECK:STDOUT: define weak_odr void @"_COp.cc12b768126bed5c:core.Destroy.Core"(ptr %self) #0 !dbg !127 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !129 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.97f42b497d28c70c:core.Destroy.Core"(ptr %self) #0 !dbg !131 { +// CHECK:STDOUT: define weak_odr void @"_COp.b496992173693e26:core.Destroy.Core"(ptr %self) #0 !dbg !131 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !133 // CHECK:STDOUT: } @@ -428,15 +428,15 @@ fn F() { // CHECK:STDOUT: !119 = !DILocation(line: 10, column: 6, scope: !116) // CHECK:STDOUT: !121 = !DILocation(line: 10, column: 3, scope: !116) // CHECK:STDOUT: !122 = !DILocation(line: 5, column: 1, scope: !116) -// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !114, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !115, retainedNodes: !126) +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !114, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !115, retainedNodes: !126) // CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !20) // CHECK:STDOUT: !125 = !DILocation(line: 9, column: 3, scope: !123) // CHECK:STDOUT: !126 = !{!124} -// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ef264ddbcdaf6301:core.Destroy.Core", scope: null, file: !114, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !115, retainedNodes: !130) +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cc12b768126bed5c:core.Destroy.Core", scope: null, file: !114, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !115, retainedNodes: !130) // CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !21) // CHECK:STDOUT: !129 = !DILocation(line: 9, column: 3, scope: !127) // CHECK:STDOUT: !130 = !{!128} -// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Op", linkageName: "_COp.97f42b497d28c70c:core.Destroy.Core", scope: null, file: !114, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !115, retainedNodes: !134) +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b496992173693e26:core.Destroy.Core", scope: null, file: !114, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !115, retainedNodes: !134) // CHECK:STDOUT: !132 = !DILocalVariable(arg: 1, scope: !131, type: !21) // CHECK:STDOUT: !133 = !DILocation(line: 9, column: 3, scope: !131) // CHECK:STDOUT: !134 = !{!132} diff --git a/toolchain/lower/testdata/struct/member_access.carbon b/toolchain/lower/testdata/struct/member_access.carbon index 339be10506e0..448ea3eedeec 100644 --- a/toolchain/lower/testdata/struct/member_access.carbon +++ b/toolchain/lower/testdata/struct/member_access.carbon @@ -40,26 +40,26 @@ fn Run() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !51 // CHECK:STDOUT: %.loc16 = load i32, ptr %y.var, align 4, !dbg !52 // CHECK:STDOUT: store i32 %.loc16, ptr %_.var, align 4, !dbg !51 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !51 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %y.var), !dbg !48 -// CHECK:STDOUT: call void @"_COp.d17ca542c084061e:core.Destroy.Core"(ptr %x.var), !dbg !45 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var), !dbg !51 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %y.var), !dbg !48 +// CHECK:STDOUT: call void @"_COp.09c9bb256d6f25f6:core.Destroy.Core"(ptr %x.var), !dbg !45 // CHECK:STDOUT: ret i32 0, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d17ca542c084061e:core.Destroy.Core"(ptr %self) #0 !dbg !63 { +// CHECK:STDOUT: define weak_odr void @"_COp.09c9bb256d6f25f6:core.Destroy.Core"(ptr %self) #0 !dbg !63 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } @@ -71,7 +71,7 @@ fn Run() -> i32 { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.70db2d92ffddbef7:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f58524831c37807e:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -100,15 +100,15 @@ fn Run() -> i32 { // CHECK:STDOUT: !51 = !DILocation(line: 16, column: 3, scope: !42) // CHECK:STDOUT: !52 = !DILocation(line: 16, column: 16, scope: !42) // CHECK:STDOUT: !54 = !DILocation(line: 17, column: 3, scope: !42) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 16, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !58) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !32, line: 16, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !58) // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !34) // CHECK:STDOUT: !57 = !DILocation(line: 16, column: 3, scope: !55) // CHECK:STDOUT: !58 = !{!56} -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !62) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !32, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !62) // CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !39) // CHECK:STDOUT: !61 = !DILocation(line: 14, column: 3, scope: !59) // CHECK:STDOUT: !62 = !{!60} -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d17ca542c084061e:core.Destroy.Core", scope: null, file: !32, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !66) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.09c9bb256d6f25f6:core.Destroy.Core", scope: null, file: !32, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !66) // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !39) // CHECK:STDOUT: !65 = !DILocation(line: 14, column: 3, scope: !63) // CHECK:STDOUT: !66 = !{!64} diff --git a/toolchain/lower/testdata/struct/nested_struct_in_place.carbon b/toolchain/lower/testdata/struct/nested_struct_in_place.carbon index 284f6507953f..dbf33167be5e 100644 --- a/toolchain/lower/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/lower/testdata/struct/nested_struct_in_place.carbon @@ -31,24 +31,24 @@ fn G() { // CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_74.1.a), !dbg !33 // CHECK:STDOUT: %.loc16_74.2.b = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 1, !dbg !32 // CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_74.2.b), !dbg !34 -// CHECK:STDOUT: call void @"_COp.308e7cf8d122ebd0:core.Destroy.Core"(ptr %_.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.2a02704bde23204a:core.Destroy.Core"(ptr %_.var), !dbg !31 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.308e7cf8d122ebd0:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.2a02704bde23204a:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } @@ -80,15 +80,15 @@ fn G() { // CHECK:STDOUT: !33 = !DILocation(line: 16, column: 61, scope: !30) // CHECK:STDOUT: !34 = !DILocation(line: 16, column: 71, scope: !30) // CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) // CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !21) // CHECK:STDOUT: !43 = !DILocation(line: 16, column: 3, scope: !41) // CHECK:STDOUT: !44 = !{!42} -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.308e7cf8d122ebd0:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2a02704bde23204a:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) // CHECK:STDOUT: !47 = !DILocation(line: 16, column: 3, scope: !45) // CHECK:STDOUT: !48 = !{!46} diff --git a/toolchain/lower/testdata/struct/one_entry.carbon b/toolchain/lower/testdata/struct/one_entry.carbon index 88b2c1b2eed3..29f5f769c3dc 100644 --- a/toolchain/lower/testdata/struct/one_entry.carbon +++ b/toolchain/lower/testdata/struct/one_entry.carbon @@ -32,19 +32,19 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc15_22.2 = load i32, ptr %.loc15_22.1.a, align 4, !dbg !34 // CHECK:STDOUT: %.loc15_22.3.struct.init = insertvalue { i32 } poison, i32 %.loc15_22.2, 0, !dbg !34 // CHECK:STDOUT: store { i32 } %.loc15_22.3.struct.init, ptr %_.var, align 4, !dbg !33 -// CHECK:STDOUT: call void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %_.var), !dbg !33 -// CHECK:STDOUT: call void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.a9280e8bea6fc5f9:core.Destroy.Core"(ptr %_.var), !dbg !33 +// CHECK:STDOUT: call void @"_COp.a9280e8bea6fc5f9:core.Destroy.Core"(ptr %x.var), !dbg !31 // CHECK:STDOUT: ret i32 0, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.a9280e8bea6fc5f9:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } @@ -53,7 +53,7 @@ fn Run() -> i32 { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.68d83131305ed52b:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.a9280e8bea6fc5f9:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -79,11 +79,11 @@ fn Run() -> i32 { // CHECK:STDOUT: !33 = !DILocation(line: 15, column: 3, scope: !28) // CHECK:STDOUT: !34 = !DILocation(line: 15, column: 22, scope: !28) // CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !28) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) // CHECK:STDOUT: !39 = !DILocation(line: 15, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68d83131305ed52b:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a9280e8bea6fc5f9:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !25) // CHECK:STDOUT: !43 = !DILocation(line: 15, column: 3, scope: !41) // CHECK:STDOUT: !44 = !{!42} diff --git a/toolchain/lower/testdata/struct/two_entries.carbon b/toolchain/lower/testdata/struct/two_entries.carbon index a46ff49f3791..de8383bf6dcf 100644 --- a/toolchain/lower/testdata/struct/two_entries.carbon +++ b/toolchain/lower/testdata/struct/two_entries.carbon @@ -40,19 +40,19 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc15_31.6 = load i32, ptr %.loc15_31.5.b, align 4, !dbg !35 // CHECK:STDOUT: %.loc15_31.7.b = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 1, !dbg !35 // CHECK:STDOUT: store i32 %.loc15_31.6, ptr %.loc15_31.7.b, align 4, !dbg !35 -// CHECK:STDOUT: call void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %_.var), !dbg !34 -// CHECK:STDOUT: call void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.b4c762864cd9a02b:core.Destroy.Core"(ptr %_.var), !dbg !34 +// CHECK:STDOUT: call void @"_COp.b4c762864cd9a02b:core.Destroy.Core"(ptr %x.var), !dbg !31 // CHECK:STDOUT: ret i32 0, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.b4c762864cd9a02b:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -64,7 +64,7 @@ fn Run() -> i32 { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.d0e8d3e870241846:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.b4c762864cd9a02b:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -91,11 +91,11 @@ fn Run() -> i32 { // CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !28) // CHECK:STDOUT: !35 = !DILocation(line: 15, column: 31, scope: !28) // CHECK:STDOUT: !37 = !DILocation(line: 16, column: 3, scope: !28) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) // CHECK:STDOUT: !40 = !DILocation(line: 15, column: 3, scope: !38) // CHECK:STDOUT: !41 = !{!39} -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b4c762864cd9a02b:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !25) // CHECK:STDOUT: !44 = !DILocation(line: 15, column: 3, scope: !42) // CHECK:STDOUT: !45 = !{!43} diff --git a/toolchain/lower/testdata/template/merging.carbon b/toolchain/lower/testdata/template/merging.carbon index 868c9069ac41..e6f1117dbf30 100644 --- a/toolchain/lower/testdata/template/merging.carbon +++ b/toolchain/lower/testdata/template/merging.carbon @@ -200,30 +200,30 @@ fn CallCallF(a: A, b: B) { // CHECK:STDOUT: %.loc34_11.2.temp = alloca {}, align 1, !dbg !54 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc32_11.2.temp), !dbg !50 // CHECK:STDOUT: call void @_CCallBF.Main.a6a60dfee2d7d273(ptr @B.val.loc8_45), !dbg !51 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr @B.val), !dbg !50 +// CHECK:STDOUT: call void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr @B.val), !dbg !50 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc33_11.2.temp), !dbg !52 // CHECK:STDOUT: call void @_CCallBF.Main.9522ff908e97e267(ptr @C.val.loc33_13.3), !dbg !53 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !52 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr @C.val), !dbg !52 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_11.2.temp), !dbg !54 // CHECK:STDOUT: call void @_CCallBF.Main.931317eeae6ffe17(ptr @D.val.loc34_13.3), !dbg !55 -// CHECK:STDOUT: call void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr @D.val), !dbg !54 +// CHECK:STDOUT: call void @"_COp.a50fd899f969e609:core.Destroy.Core"(ptr @D.val), !dbg !54 // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !57 { +// CHECK:STDOUT: define weak_odr void @"_COp.8c4b83ecd900f1ea:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.a50fd899f969e609:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } @@ -338,15 +338,15 @@ fn CallCallF(a: A, b: B) { // CHECK:STDOUT: !54 = !DILocation(line: 34, column: 10, scope: !49) // CHECK:STDOUT: !55 = !DILocation(line: 34, column: 3, scope: !49) // CHECK:STDOUT: !56 = !DILocation(line: 31, column: 1, scope: !49) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !22, line: 32, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !60) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8c4b83ecd900f1ea:core.Destroy.Core", scope: null, file: !22, line: 32, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !60) // CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !57, type: !24) // CHECK:STDOUT: !59 = !DILocation(line: 32, column: 10, scope: !57) // CHECK:STDOUT: !60 = !{!58} -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !22, line: 33, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !64) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !22, line: 33, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !64) // CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !24) // CHECK:STDOUT: !63 = !DILocation(line: 33, column: 10, scope: !61) // CHECK:STDOUT: !64 = !{!62} -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.86bfabb7802f32e5:core.Destroy.Core", scope: null, file: !22, line: 34, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !68) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a50fd899f969e609:core.Destroy.Core", scope: null, file: !22, line: 34, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !68) // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !24) // CHECK:STDOUT: !67 = !DILocation(line: 34, column: 10, scope: !65) // CHECK:STDOUT: !68 = !{!66} diff --git a/toolchain/lower/testdata/tuple/access/element_access.carbon b/toolchain/lower/testdata/tuple/access/element_access.carbon index de478b3c80a9..623029875088 100644 --- a/toolchain/lower/testdata/tuple/access/element_access.carbon +++ b/toolchain/lower/testdata/tuple/access/element_access.carbon @@ -42,20 +42,20 @@ fn Run() -> i32 { // CHECK:STDOUT: %tuple.elem2.loc16.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !38 // CHECK:STDOUT: %.loc16 = load i32, ptr %tuple.elem2.loc16.tuple.elem, align 4, !dbg !38 // CHECK:STDOUT: store i32 %.loc16, ptr %_.var.loc16, align 4, !dbg !37 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc16), !dbg !37 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc15), !dbg !34 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var.loc16), !dbg !37 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var.loc15), !dbg !34 +// CHECK:STDOUT: call void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %a.var), !dbg !31 // CHECK:STDOUT: ret i32 0, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } @@ -67,7 +67,7 @@ fn Run() -> i32 { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.70db2d92ffddbef7:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f58524831c37807e:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -96,11 +96,11 @@ fn Run() -> i32 { // CHECK:STDOUT: !37 = !DILocation(line: 16, column: 3, scope: !28) // CHECK:STDOUT: !38 = !DILocation(line: 16, column: 16, scope: !28) // CHECK:STDOUT: !40 = !DILocation(line: 17, column: 3, scope: !28) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !20) // CHECK:STDOUT: !43 = !DILocation(line: 16, column: 3, scope: !41) // CHECK:STDOUT: !44 = !{!42} -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !25) // CHECK:STDOUT: !47 = !DILocation(line: 14, column: 3, scope: !45) // CHECK:STDOUT: !48 = !{!46} diff --git a/toolchain/lower/testdata/tuple/access/return_value_access.carbon b/toolchain/lower/testdata/tuple/access/return_value_access.carbon index 074f518b9614..1affb6ab2e85 100644 --- a/toolchain/lower/testdata/tuple/access/return_value_access.carbon +++ b/toolchain/lower/testdata/tuple/access/return_value_access.carbon @@ -42,19 +42,19 @@ fn Run() { // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc16_18.1.temp, i32 0, i32 1, !dbg !37 // CHECK:STDOUT: %.loc16_19 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !37 // CHECK:STDOUT: store i32 %.loc16_19, ptr %_.var, align 4, !dbg !36 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc16_18.1.temp), !dbg !37 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !36 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %.loc16_18.1.temp), !dbg !37 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %_.var), !dbg !36 // CHECK:STDOUT: ret i32 0, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -95,11 +95,11 @@ fn Run() { // CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !35) // CHECK:STDOUT: !37 = !DILocation(line: 16, column: 16, scope: !35) // CHECK:STDOUT: !39 = !DILocation(line: 15, column: 1, scope: !35) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) // CHECK:STDOUT: !42 = !DILocation(line: 16, column: 16, scope: !40) // CHECK:STDOUT: !43 = !{!41} -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !21) // CHECK:STDOUT: !46 = !DILocation(line: 16, column: 16, scope: !44) // CHECK:STDOUT: !47 = !{!45} diff --git a/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon b/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon index 25f11504fb38..6acb92520837 100644 --- a/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon +++ b/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon @@ -31,24 +31,24 @@ fn G() { // CHECK:STDOUT: call void @_CF.Main(ptr %tuple.elem0.tuple.elem), !dbg !33 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 1, !dbg !32 // CHECK:STDOUT: call void @_CF.Main(ptr %tuple.elem1.tuple.elem), !dbg !34 -// CHECK:STDOUT: call void @"_COp.ac811304fbcb483d:core.Destroy.Core"(ptr %_.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.0159eff107255368:core.Destroy.Core"(ptr %_.var), !dbg !31 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ac811304fbcb483d:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.0159eff107255368:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } @@ -80,15 +80,15 @@ fn G() { // CHECK:STDOUT: !33 = !DILocation(line: 16, column: 48, scope: !30) // CHECK:STDOUT: !34 = !DILocation(line: 16, column: 53, scope: !30) // CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) // CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !21) // CHECK:STDOUT: !43 = !DILocation(line: 16, column: 3, scope: !41) // CHECK:STDOUT: !44 = !{!42} -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ac811304fbcb483d:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0159eff107255368:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) // CHECK:STDOUT: !47 = !DILocation(line: 16, column: 3, scope: !45) // CHECK:STDOUT: !48 = !{!46} diff --git a/toolchain/lower/testdata/tuple/one_entry.carbon b/toolchain/lower/testdata/tuple/one_entry.carbon index 65015129a87b..345354874ce9 100644 --- a/toolchain/lower/testdata/tuple/one_entry.carbon +++ b/toolchain/lower/testdata/tuple/one_entry.carbon @@ -32,19 +32,19 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc15_20.1 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !34 // CHECK:STDOUT: %.loc15_20.2.tuple.init = insertvalue { i32 } poison, i32 %.loc15_20.1, 0, !dbg !34 // CHECK:STDOUT: store { i32 } %.loc15_20.2.tuple.init, ptr %_.var, align 4, !dbg !33 -// CHECK:STDOUT: call void @"_COp.216a6481b641f07b:core.Destroy.Core"(ptr %_.var), !dbg !33 -// CHECK:STDOUT: call void @"_COp.216a6481b641f07b:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.a8a56634ea0bfe88:core.Destroy.Core"(ptr %_.var), !dbg !33 +// CHECK:STDOUT: call void @"_COp.a8a56634ea0bfe88:core.Destroy.Core"(ptr %x.var), !dbg !31 // CHECK:STDOUT: ret i32 0, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.216a6481b641f07b:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.a8a56634ea0bfe88:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } @@ -53,7 +53,7 @@ fn Run() -> i32 { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.216a6481b641f07b:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.a8a56634ea0bfe88:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -79,11 +79,11 @@ fn Run() -> i32 { // CHECK:STDOUT: !33 = !DILocation(line: 15, column: 3, scope: !28) // CHECK:STDOUT: !34 = !DILocation(line: 15, column: 20, scope: !28) // CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !28) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) // CHECK:STDOUT: !39 = !DILocation(line: 15, column: 3, scope: !37) // CHECK:STDOUT: !40 = !{!38} -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.216a6481b641f07b:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a8a56634ea0bfe88:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !25) // CHECK:STDOUT: !43 = !DILocation(line: 15, column: 3, scope: !41) // CHECK:STDOUT: !44 = !{!42} diff --git a/toolchain/lower/testdata/tuple/two_entries.carbon b/toolchain/lower/testdata/tuple/two_entries.carbon index 205071a92465..2366a548c1ed 100644 --- a/toolchain/lower/testdata/tuple/two_entries.carbon +++ b/toolchain/lower/testdata/tuple/two_entries.carbon @@ -40,19 +40,19 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc15_23.3 = load i32, ptr %tuple.elem1.loc15_23.1.tuple.elem, align 4, !dbg !35 // CHECK:STDOUT: %tuple.elem1.loc15_23.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 1, !dbg !35 // CHECK:STDOUT: store i32 %.loc15_23.3, ptr %tuple.elem1.loc15_23.2.tuple.elem, align 4, !dbg !35 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %_.var), !dbg !34 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %_.var), !dbg !34 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %x.var), !dbg !31 // CHECK:STDOUT: ret i32 0, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.e554695bf635d9c1:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -64,7 +64,7 @@ fn Run() -> i32 { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.e554695bf635d9c1:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -91,11 +91,11 @@ fn Run() -> i32 { // CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !28) // CHECK:STDOUT: !35 = !DILocation(line: 15, column: 23, scope: !28) // CHECK:STDOUT: !37 = !DILocation(line: 16, column: 3, scope: !28) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) // CHECK:STDOUT: !40 = !DILocation(line: 15, column: 3, scope: !38) // CHECK:STDOUT: !41 = !{!39} -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !25) // CHECK:STDOUT: !44 = !DILocation(line: 15, column: 3, scope: !42) // CHECK:STDOUT: !45 = !{!43} diff --git a/toolchain/lower/testdata/tuple/value_formation.carbon b/toolchain/lower/testdata/tuple/value_formation.carbon index 909540097d21..d935a3cd0d45 100644 --- a/toolchain/lower/testdata/tuple/value_formation.carbon +++ b/toolchain/lower/testdata/tuple/value_formation.carbon @@ -66,19 +66,19 @@ fn F() { // CHECK:STDOUT: %tuple.loc18_108 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc18_10, i32 0, i32 1, !dbg !35 // CHECK:STDOUT: store ptr %tuple.loc18_9, ptr %tuple.loc18_108, align 8, !dbg !35 // CHECK:STDOUT: call void @_CG.Main(ptr %tuple.loc18_10), !dbg !36 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %b.var), !dbg !31 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !29 +// CHECK:STDOUT: call void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %b.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %a.var), !dbg !29 // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -87,7 +87,7 @@ fn F() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.891f32d238880255:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.555b1314256372b8:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 4, 3, 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -116,11 +116,11 @@ fn F() { // CHECK:STDOUT: !35 = !DILocation(line: 18, column: 5, scope: !28) // CHECK:STDOUT: !36 = !DILocation(line: 18, column: 3, scope: !28) // CHECK:STDOUT: !37 = !DILocation(line: 15, column: 1, scope: !28) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) // CHECK:STDOUT: !40 = !DILocation(line: 17, column: 3, scope: !38) // CHECK:STDOUT: !41 = !{!39} -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !18, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !21) // CHECK:STDOUT: !44 = !DILocation(line: 17, column: 3, scope: !42) // CHECK:STDOUT: !45 = !{!43} diff --git a/toolchain/lower/testdata/var/destroy_control_flow.carbon b/toolchain/lower/testdata/var/destroy_control_flow.carbon index b9c80a1a55a1..e08290bf25ac 100644 --- a/toolchain/lower/testdata/var/destroy_control_flow.carbon +++ b/toolchain/lower/testdata/var/destroy_control_flow.carbon @@ -165,19 +165,19 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !54 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !54 // CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !58 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !54 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %b.var), !dbg !54 // CHECK:STDOUT: br label %if.else, !dbg !59 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %entry // CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !62 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !47 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %a.var), !dbg !47 // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } @@ -190,7 +190,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CUse.Main, { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.474c886d55da95e6:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.c3fcb3d93f31df0e:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 1, 0 } // CHECK:STDOUT: @@ -218,7 +218,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: !62 = !DILocation(line: 12, column: 3, scope: !44) // CHECK:STDOUT: !63 = !DILocation(line: 5, column: 1, scope: !44) // CHECK:STDOUT: !64 = !{!45} -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !42, line: 9, type: !36, spFlags: DISPFlagDefinition, unit: !43, retainedNodes: !68) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c3fcb3d93f31df0e:core.Destroy.Core", scope: null, file: !42, line: 9, type: !36, spFlags: DISPFlagDefinition, unit: !43, retainedNodes: !68) // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !34) // CHECK:STDOUT: !67 = !DILocation(line: 9, column: 5, scope: !65) // CHECK:STDOUT: !68 = !{!66} @@ -244,26 +244,26 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !81 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !81 // CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !85 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !81 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %b.var), !dbg !81 // CHECK:STDOUT: br label %if.done, !dbg !86 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !87 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !87 // CHECK:STDOUT: call void @_CUse.Main(ptr %c.var), !dbg !91 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %c.var), !dbg !87 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %c.var), !dbg !87 // CHECK:STDOUT: br label %if.done, !dbg !86 // CHECK:STDOUT: // CHECK:STDOUT: if.done: ; preds = %if.else, %if.then // CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !94 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !74 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %a.var), !dbg !74 // CHECK:STDOUT: ret void, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !97 { +// CHECK:STDOUT: define weak_odr void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %self) #0 !dbg !97 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: } @@ -276,7 +276,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CUse.Main, { 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.474c886d55da95e6:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.c3fcb3d93f31df0e:core.Destroy.Core", { 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 2, 1, 0 } // CHECK:STDOUT: @@ -306,7 +306,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: !94 = !DILocation(line: 15, column: 3, scope: !71) // CHECK:STDOUT: !95 = !DILocation(line: 5, column: 1, scope: !71) // CHECK:STDOUT: !96 = !{!72} -// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !69, line: 9, type: !36, spFlags: DISPFlagDefinition, unit: !70, retainedNodes: !100) +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c3fcb3d93f31df0e:core.Destroy.Core", scope: null, file: !69, line: 9, type: !36, spFlags: DISPFlagDefinition, unit: !70, retainedNodes: !100) // CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !34) // CHECK:STDOUT: !99 = !DILocation(line: 9, column: 5, scope: !97) // CHECK:STDOUT: !100 = !{!98} @@ -331,19 +331,19 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !113 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !113 // CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !117 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !113 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !106 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %b.var), !dbg !113 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %a.var), !dbg !106 // CHECK:STDOUT: ret void, !dbg !118 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !106 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %a.var), !dbg !106 // CHECK:STDOUT: ret void, !dbg !119 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !121 { +// CHECK:STDOUT: define weak_odr void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %self) #0 !dbg !121 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !123 // CHECK:STDOUT: } @@ -356,7 +356,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CUse.Main, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.474c886d55da95e6:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.c3fcb3d93f31df0e:core.Destroy.Core", { 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 1, 0 } // CHECK:STDOUT: @@ -383,7 +383,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: !118 = !DILocation(line: 11, column: 5, scope: !103) // CHECK:STDOUT: !119 = !DILocation(line: 5, column: 1, scope: !103) // CHECK:STDOUT: !120 = !{!104} -// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !101, line: 9, type: !36, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !124) +// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c3fcb3d93f31df0e:core.Destroy.Core", scope: null, file: !101, line: 9, type: !36, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !124) // CHECK:STDOUT: !122 = !DILocalVariable(arg: 1, scope: !121, type: !34) // CHECK:STDOUT: !123 = !DILocation(line: 9, column: 5, scope: !121) // CHECK:STDOUT: !124 = !{!122} @@ -419,24 +419,24 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !147 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !147 // CHECK:STDOUT: call void @_CUse.Main(ptr %c.var), !dbg !151 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %c.var), !dbg !147 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !140 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %c.var), !dbg !147 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %b.var), !dbg !140 // CHECK:STDOUT: br label %while.done, !dbg !152 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %while.body -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !140 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %b.var), !dbg !140 // CHECK:STDOUT: br label %while.cond, !dbg !153 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %if.then, %while.cond // CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !156 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !130 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %a.var), !dbg !130 // CHECK:STDOUT: ret void, !dbg !157 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !159 { +// CHECK:STDOUT: define weak_odr void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %self) #0 !dbg !159 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !161 // CHECK:STDOUT: } @@ -449,7 +449,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CUse.Main, { 4, 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.474c886d55da95e6:core.Destroy.Core", { 3, 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.c3fcb3d93f31df0e:core.Destroy.Core", { 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 2, 1, 0 } // CHECK:STDOUT: @@ -482,7 +482,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: !156 = !DILocation(line: 18, column: 3, scope: !127) // CHECK:STDOUT: !157 = !DILocation(line: 5, column: 1, scope: !127) // CHECK:STDOUT: !158 = !{!128} -// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !125, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !126, retainedNodes: !162) +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c3fcb3d93f31df0e:core.Destroy.Core", scope: null, file: !125, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !126, retainedNodes: !162) // CHECK:STDOUT: !160 = !DILocalVariable(arg: 1, scope: !159, type: !34) // CHECK:STDOUT: !161 = !DILocation(line: 13, column: 7, scope: !159) // CHECK:STDOUT: !162 = !{!160} @@ -518,24 +518,24 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !185 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !185 // CHECK:STDOUT: call void @_CUse.Main(ptr %c.var), !dbg !189 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %c.var), !dbg !185 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !178 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %c.var), !dbg !185 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %b.var), !dbg !178 // CHECK:STDOUT: br label %while.cond, !dbg !190 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %while.body -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !178 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %b.var), !dbg !178 // CHECK:STDOUT: br label %while.cond, !dbg !191 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond // CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !194 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !168 +// CHECK:STDOUT: call void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %a.var), !dbg !168 // CHECK:STDOUT: ret void, !dbg !195 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !197 { +// CHECK:STDOUT: define weak_odr void @"_COp.c3fcb3d93f31df0e:core.Destroy.Core"(ptr %self) #0 !dbg !197 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !199 // CHECK:STDOUT: } @@ -548,7 +548,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CUse.Main, { 4, 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.474c886d55da95e6:core.Destroy.Core", { 3, 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.c3fcb3d93f31df0e:core.Destroy.Core", { 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 2, 1, 0 } // CHECK:STDOUT: @@ -581,7 +581,7 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: !194 = !DILocation(line: 18, column: 3, scope: !165) // CHECK:STDOUT: !195 = !DILocation(line: 5, column: 1, scope: !165) // CHECK:STDOUT: !196 = !{!166} -// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !163, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !200) +// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c3fcb3d93f31df0e:core.Destroy.Core", scope: null, file: !163, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !200) // CHECK:STDOUT: !198 = !DILocalVariable(arg: 1, scope: !197, type: !34) // CHECK:STDOUT: !199 = !DILocation(line: 13, column: 7, scope: !197) // CHECK:STDOUT: !200 = !{!198} diff --git a/toolchain/lower/testdata/var/local.carbon b/toolchain/lower/testdata/var/local.carbon index 044ff71b2687..b9a9e8c6de92 100644 --- a/toolchain/lower/testdata/var/local.carbon +++ b/toolchain/lower/testdata/var/local.carbon @@ -41,12 +41,12 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !28 // CHECK:STDOUT: store i32 1, ptr %x.var, align 4, !dbg !28 // CHECK:STDOUT: %.loc6 = load i32, ptr %x.var, align 4, !dbg !30 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !28 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %x.var), !dbg !28 // CHECK:STDOUT: ret i32 %.loc6, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } @@ -73,7 +73,7 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: !28 = !DILocation(line: 5, column: 3, scope: !25) // CHECK:STDOUT: !30 = !DILocation(line: 6, column: 10, scope: !25) // CHECK:STDOUT: !31 = !DILocation(line: 6, column: 3, scope: !25) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !20) // CHECK:STDOUT: !34 = !DILocation(line: 5, column: 3, scope: !32) // CHECK:STDOUT: !35 = !{!33} @@ -112,18 +112,18 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: %.loc8_10.5 = load i32, ptr %tuple.elem2.loc8_10.1.tuple.elem, align 4, !dbg !53 // CHECK:STDOUT: %tuple.elem2.loc8_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !53 // CHECK:STDOUT: store i32 %.loc8_10.5, ptr %tuple.elem2.loc8_10.2.tuple.elem, align 4, !dbg !53 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !51 +// CHECK:STDOUT: call void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %a.var), !dbg !51 // CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: define weak_odr void @"_COp.555b1314256372b8:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } @@ -162,11 +162,11 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: !51 = !DILocation(line: 7, column: 3, scope: !48) // CHECK:STDOUT: !53 = !DILocation(line: 8, column: 10, scope: !48) // CHECK:STDOUT: !54 = !DILocation(line: 8, column: 3, scope: !48) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !36, line: 7, type: !24, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !58) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !36, line: 7, type: !24, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !58) // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !20) // CHECK:STDOUT: !57 = !DILocation(line: 7, column: 3, scope: !55) // CHECK:STDOUT: !58 = !{!56} -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !36, line: 7, type: !42, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !62) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.555b1314256372b8:core.Destroy.Core", scope: null, file: !36, line: 7, type: !42, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !62) // CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !38) // CHECK:STDOUT: !61 = !DILocation(line: 7, column: 3, scope: !59) // CHECK:STDOUT: !62 = !{!60} diff --git a/toolchain/lower/testdata/var/nested.carbon b/toolchain/lower/testdata/var/nested.carbon index 0173cd964dfc..f26315371d78 100644 --- a/toolchain/lower/testdata/var/nested.carbon +++ b/toolchain/lower/testdata/var/nested.carbon @@ -41,17 +41,17 @@ fn Run() -> i32 { // CHECK:STDOUT: store i32 %.loc16, ptr %b.var, align 4, !dbg !31 // CHECK:STDOUT: %.loc17 = load i32, ptr %b.var, align 4, !dbg !35 // CHECK:STDOUT: store i32 %.loc17, ptr %a.var, align 4, !dbg !34 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %b.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %b.var), !dbg !31 // CHECK:STDOUT: br label %while.cond, !dbg !36 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond // CHECK:STDOUT: %.loc19 = load i32, ptr %a.var, align 4, !dbg !37 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !28 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %a.var), !dbg !28 // CHECK:STDOUT: ret i32 %.loc19, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } @@ -60,7 +60,7 @@ fn Run() -> i32 { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.70db2d92ffddbef7:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f58524831c37807e:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -88,7 +88,7 @@ fn Run() -> i32 { // CHECK:STDOUT: !36 = !DILocation(line: 15, column: 3, scope: !25) // CHECK:STDOUT: !37 = !DILocation(line: 19, column: 10, scope: !25) // CHECK:STDOUT: !38 = !DILocation(line: 19, column: 3, scope: !25) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !42) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !18, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !42) // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !20) // CHECK:STDOUT: !41 = !DILocation(line: 16, column: 5, scope: !39) // CHECK:STDOUT: !42 = !{!40} diff --git a/toolchain/lower/testdata/var/param.carbon b/toolchain/lower/testdata/var/param.carbon index 348ab37e595b..f05d9f34606f 100644 --- a/toolchain/lower/testdata/var/param.carbon +++ b/toolchain/lower/testdata/var/param.carbon @@ -63,12 +63,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !16 // CHECK:STDOUT: call void @_CMake.C.Main(ptr %c.var), !dbg !17 // CHECK:STDOUT: call void @_CF.Main(ptr %c.var), !dbg !18 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !16 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !16 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } @@ -96,7 +96,7 @@ fn G() { // CHECK:STDOUT: !17 = !DILocation(line: 16, column: 5, scope: !15) // CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !15) // CHECK:STDOUT: !19 = !DILocation(line: 15, column: 1, scope: !15) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !6, line: 13, type: !10, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !23) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !6, line: 13, type: !10, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !23) // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !20, type: !8) // CHECK:STDOUT: !22 = !DILocation(line: 13, column: 6, scope: !20) // CHECK:STDOUT: !23 = !{!21} @@ -118,12 +118,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !27 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc11, i64 0, i1 false), !dbg !27 // CHECK:STDOUT: call void @_CF.Main(ptr %c.var), !dbg !28 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !27 +// CHECK:STDOUT: call void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %c.var), !dbg !27 // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.08d9e38b928ba575:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } @@ -153,7 +153,7 @@ fn G() { // CHECK:STDOUT: !27 = !DILocation(line: 11, column: 6, scope: !26) // CHECK:STDOUT: !28 = !DILocation(line: 14, column: 3, scope: !26) // CHECK:STDOUT: !29 = !DILocation(line: 13, column: 1, scope: !26) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !24, line: 11, type: !10, spFlags: DISPFlagDefinition, unit: !25, retainedNodes: !33) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.08d9e38b928ba575:core.Destroy.Core", scope: null, file: !24, line: 11, type: !10, spFlags: DISPFlagDefinition, unit: !25, retainedNodes: !33) // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !8) // CHECK:STDOUT: !32 = !DILocation(line: 11, column: 6, scope: !30) // CHECK:STDOUT: !33 = !{!31} diff --git a/toolchain/lower/testdata/var/uninitialized.carbon b/toolchain/lower/testdata/var/uninitialized.carbon index f3acfec74c02..e15c4a94ae35 100644 --- a/toolchain/lower/testdata/var/uninitialized.carbon +++ b/toolchain/lower/testdata/var/uninitialized.carbon @@ -42,19 +42,19 @@ fn Run() { // CHECK:STDOUT: store i8 poison, ptr %e.var, align 1, !dbg !23 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %f.var), !dbg !25 // CHECK:STDOUT: store ptr poison, ptr %f.var, align 8, !dbg !25 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %b.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %b.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %a.var), !dbg !15 // CHECK:STDOUT: ret i32 0, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.dc14d4dd21801791:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.f58524831c37807e:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } @@ -91,11 +91,11 @@ fn Run() { // CHECK:STDOUT: !23 = !DILocation(line: 18, column: 3, scope: !14) // CHECK:STDOUT: !25 = !DILocation(line: 19, column: 3, scope: !14) // CHECK:STDOUT: !27 = !DILocation(line: 13, column: 1, scope: !14) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc14d4dd21801791:core.Destroy.Core", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !9) // CHECK:STDOUT: !30 = !DILocation(line: 15, column: 3, scope: !28) // CHECK:STDOUT: !31 = !{!29} -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58524831c37807e:core.Destroy.Core", scope: null, file: !4, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !6) // CHECK:STDOUT: !34 = !DILocation(line: 14, column: 3, scope: !32) // CHECK:STDOUT: !35 = !{!33} diff --git a/toolchain/sem_ir/dump.cpp b/toolchain/sem_ir/dump.cpp index 4c14eb1ba672..17fb69847f6f 100644 --- a/toolchain/sem_ir/dump.cpp +++ b/toolchain/sem_ir/dump.cpp @@ -200,6 +200,19 @@ LLVM_DUMP_METHOD auto Dump(const File& file, RawBundleId bundle_id) return out.TakeStr(); } +LLVM_DUMP_METHOD auto Dump(const File& file, + GeneratedFunctionId generated_function_id) + -> std::string { + RawStringOstream out; + out << generated_function_id; + if (generated_function_id.has_value()) { + const auto& canon = file.generated_functions().Get(generated_function_id); + out << ": " << canon; + out << "\n - decl: " << DumpInstSummary(file, canon.decl_id); + } + return out.TakeStr(); +} + LLVM_DUMP_METHOD auto Dump(const File& file, ClassId class_id) -> std::string { RawStringOstream out; out << class_id; @@ -629,6 +642,10 @@ LLVM_DUMP_METHOD auto Dump(const File& file, TypeId type_id) -> std::string { LLVM_DUMP_METHOD static auto MakeBundleId(int id) -> RawBundleId { return RawBundleId(id); } +LLVM_DUMP_METHOD static auto MakeGeneratedFunctionId(int id) + -> GeneratedFunctionId { + return GeneratedFunctionId(id); +} LLVM_DUMP_METHOD static auto MakeClassId(int id) -> ClassId { return ClassId(id); } diff --git a/toolchain/sem_ir/dump.h b/toolchain/sem_ir/dump.h index 2a3f965c88b8..818b453355bd 100644 --- a/toolchain/sem_ir/dump.h +++ b/toolchain/sem_ir/dump.h @@ -23,6 +23,8 @@ namespace Carbon::SemIR { auto Dump(const File& file) -> std::string; auto Dump(const File& file, RawBundleId bundle_id) -> std::string; +auto Dump(const File& file, GeneratedFunctionId generated_function_id) + -> std::string; auto Dump(const File& file, ClassId class_id) -> std::string; auto Dump(const File& file, ConstantId const_id) -> std::string; auto Dump(const File& file, CppOverloadSetId overload_set_id) -> std::string; diff --git a/toolchain/sem_ir/file.cpp b/toolchain/sem_ir/file.cpp index cde3518d71bd..0b6fa2cb63a8 100644 --- a/toolchain/sem_ir/file.cpp +++ b/toolchain/sem_ir/file.cpp @@ -41,6 +41,7 @@ File::File(const Parse::Tree* parse_tree, CheckIRId check_ir_id, filename_(std::move(filename)), entity_names_(check_ir_id), functions_(check_ir_id), + generated_functions_(check_ir_id), cpp_overload_sets_(check_ir_id), thunks_(check_ir_id), classes_(check_ir_id), diff --git a/toolchain/sem_ir/file.h b/toolchain/sem_ir/file.h index e744519e9569..5219747dc481 100644 --- a/toolchain/sem_ir/file.h +++ b/toolchain/sem_ir/file.h @@ -168,6 +168,12 @@ class File : public Printable { auto entity_names() const -> const EntityNameStore& { return entity_names_; } auto functions() -> FunctionStore& { return functions_; } auto functions() const -> const FunctionStore& { return functions_; } + auto generated_functions() -> GeneratedFunctionStore& { + return generated_functions_; + } + auto generated_functions() const -> const GeneratedFunctionStore& { + return generated_functions_; + } auto cpp_overload_sets() -> CppOverloadSetStore& { return cpp_overload_sets_; } @@ -362,6 +368,10 @@ class File : public Printable { // Storage for callable objects. FunctionStore functions_; + // Provides canonical ids for Generated special functions which map to a + // canonical FunctionId. + GeneratedFunctionStore generated_functions_; + // Storage for CppOverloadSet. CppOverloadSetStore cpp_overload_sets_; diff --git a/toolchain/sem_ir/formatter.cpp b/toolchain/sem_ir/formatter.cpp index 2d376071ed45..a2ad856db713 100644 --- a/toolchain/sem_ir/formatter.cpp +++ b/toolchain/sem_ir/formatter.cpp @@ -574,9 +574,10 @@ auto Formatter::FormatFunction(FunctionId id, const Function& fn) -> void { fn.call_param_ranges.return_begin(), fn.GetDeclaredReturnForm(*sem_ir_)); - if (fn.builtin_function_kind() != BuiltinFunctionKind::None) { + if (auto builtin_kind = fn.GetBuiltinFunctionKind(*sem_ir_); + builtin_kind != BuiltinFunctionKind::None) { out() << " = \"" - << FormatEscaped(fn.builtin_function_kind().name(), + << FormatEscaped(builtin_kind.name(), /*use_hex_escapes=*/true) << "\""; } diff --git a/toolchain/sem_ir/function.cpp b/toolchain/sem_ir/function.cpp index 401891ae419f..3b201657294d 100644 --- a/toolchain/sem_ir/function.cpp +++ b/toolchain/sem_ir/function.cpp @@ -7,6 +7,7 @@ #include #include +#include "toolchain/base/canonical_value_store_impl.h" #include "toolchain/base/kind_switch.h" #include "toolchain/base/value_store_impl.h" #include "toolchain/sem_ir/file.h" @@ -153,6 +154,20 @@ auto DecomposeVirtualFunction(const File& sem_ir, InstId fn_decl_id, .specific_id = specific_id}; } +auto Function::GetBuiltinFunctionKind(const File& file) const + -> BuiltinFunctionKind { + switch (special_function_kind) { + case SpecialFunctionKind::Builtin: + return non_generated_builtin_function_kind(); + case SpecialFunctionKind::Generated: { + auto generated_id = GeneratedFunctionId(special_function_kind_data.index); + return file.generated_functions().Get(generated_id).builtin_function_kind; + } + default: + return BuiltinFunctionKind::None; + } +} + auto Function::GetDeclaredReturnType(const File& file, SpecificId specific_id) const -> TypeId { if (!return_type_inst_id.has_value()) { @@ -178,4 +193,7 @@ auto Function::GetDeclaredReturnForm(const File& file, namespace Carbon { template class ValueStore>; +template class CanonicalValueStore< + SemIR::GeneratedFunctionId, SemIR::GeneratedFunction::CanonicalKey, + Tag, SemIR::GeneratedFunction>; } // namespace Carbon diff --git a/toolchain/sem_ir/function.h b/toolchain/sem_ir/function.h index 3a335de26c8b..3a0fad5e4a25 100644 --- a/toolchain/sem_ir/function.h +++ b/toolchain/sem_ir/function.h @@ -5,6 +5,7 @@ #ifndef CARBON_TOOLCHAIN_SEM_IR_FUNCTION_H_ #define CARBON_TOOLCHAIN_SEM_IR_FUNCTION_H_ +#include "toolchain/base/canonical_value_store.h" #include "toolchain/base/value_store.h" #include "toolchain/sem_ir/builtin_function_kind.h" #include "toolchain/sem_ir/clang_decl.h" @@ -25,12 +26,11 @@ struct FunctionFields { // A builtin function. `special_function_kind_data` is the corresponding // `BuiltinFunctionKind`. Builtin, - // A synthesized function generated for a `Core` witness. - // `special_function_kind_data` is the corresponding `BuiltinFunctionKind`, - // or may be `BuiltinFunctionKind::None` if a function body is synthesized - // too. During name mangling, extra information is included for this - // function to avoid collisions. - CoreWitness, + // A synthesized function generated for a custom witness. + // `special_function_kind_data` is the corresponding + // `GeneratedFunctionId`, which holds data for canonicalization, + // mangling, and the `BuiltinFunctionKind` for the function body, if any. + Generated, // A thunk that adapts a function with one signature to have another // signature, by forwarding the arguments and return value, with implicit // conversions applied as necessary. `special_function_kind_data` is the @@ -186,8 +186,8 @@ struct FunctionFields { InstId self_param_id = InstId::None; // Data that is specific to the special function kind. Use - // `builtin_function_kind()`, `thunk_decl_id()` or `cpp_thunk_decl_id()` to - // access this. + // `non_generated_builtin_function_kind()`, `generated_function_id()`, + // `thunk_decl_id()` or `cpp_thunk_decl_id()` to access this. AnyRawId special_function_kind_data = AnyRawId(AnyRawId::NoneIndex); // The following members are accumulated throughout the function definition. @@ -247,10 +247,13 @@ struct Function : public EntityWithParamsBase, if (return_pattern_id.has_value()) { out << ", return_pattern_id: " << return_pattern_id; } - if (auto builtin_kind = builtin_function_kind(); + if (auto builtin_kind = non_generated_builtin_function_kind(); builtin_kind != BuiltinFunctionKind::None) { out << ", builtin: " << builtin_kind; } + if (auto generated_id = generated_function_id(); generated_id.has_value()) { + out << ", generated_function_id: " << generated_id; + } if (auto thunk_id_val = thunk_id(); thunk_id_val.has_value()) { out << ", thunk: " << thunk_id_val; } @@ -273,15 +276,26 @@ struct Function : public EntityWithParamsBase, out << "}"; } - // Returns the builtin function kind for this function, or None if this is not - // a builtin function. - auto builtin_function_kind() const -> BuiltinFunctionKind { - return (special_function_kind == SpecialFunctionKind::Builtin || - special_function_kind == SpecialFunctionKind::CoreWitness) + // Returns the builtin function kind for this Builtin function, or None if + // this is not a builtin function. Note that Generated functions may also + // have a BuiltinFunctionKind, but this returns None for Generated + // functions. Use GetBuiltinFunctionKind to get the builtin function kind for + // all special functions. + auto non_generated_builtin_function_kind() const -> BuiltinFunctionKind { + return special_function_kind == SpecialFunctionKind::Builtin ? BuiltinFunctionKind::FromInt(special_function_kind_data.index) : BuiltinFunctionKind::None; } + // Returns the ID of the GeneratedFunction. It holds a key used to + // canonicalize Generated functions so that we use the same function across + // all files. + auto generated_function_id() const -> GeneratedFunctionId { + return special_function_kind == SpecialFunctionKind::Generated + ? GeneratedFunctionId(special_function_kind_data.index) + : GeneratedFunctionId::None; + } + // Returns the ThunkId for this thunk function, or None if it's not a thunk. auto thunk_id() const -> ThunkId { return special_function_kind == SpecialFunctionKind::Thunk @@ -305,6 +319,10 @@ struct Function : public EntityWithParamsBase, : InstId::None; } + // Gets the BuiltinFunctionKind for the function, if it has one. This applies + // to both Builtin and Generated special functions. + auto GetBuiltinFunctionKind(const File& file) const -> BuiltinFunctionKind; + // Gets the declared return type for a specific version of this function, or // the canonical return type for the original declaration no specific is // specified. Returns `None` if no return type was specified, in which @@ -341,14 +359,13 @@ struct Function : public EntityWithParamsBase, special_function_kind_data = AnyRawId(kind.AsInt()); } - // Sets that this function is generated for a `Core` witness. These will - // typically have a custom implementation for a `None` kind, but may use - // builtin functions, most often `NoOp`. We still track them differently in - // order to support mangling. - auto SetCoreWitness(BuiltinFunctionKind kind) -> void { + // Sets that this function is generated function for a custom witness. The + // generated function data may include a BuiltinFunctionKind if the body is a + // builtin. + auto SetGenerated(GeneratedFunctionId generated_function_id) -> void { CARBON_CHECK(special_function_kind == SpecialFunctionKind::None); - special_function_kind = SpecialFunctionKind::CoreWitness; - special_function_kind_data = AnyRawId(kind.AsInt()); + special_function_kind = SpecialFunctionKind::Generated; + special_function_kind_data = AnyRawId(generated_function_id.index); } // Sets that this function is a thunk. @@ -446,11 +463,65 @@ auto DecomposeVirtualFunction(const File& sem_ir, InstId fn_decl_id, SpecificId base_class_specific_id) -> DecomposedVirtualFunction; +// The key holds values used to canonicalize generated functions for custom +// witnesses globally across files. The payload holds a link to the Generated +// function, as well as any extra fields for a Generated function. This can be +// used for deduping generating functions in order to keep only a single +// canonical copy, and for generating a mangled name that will be the same for +// all files. +struct GeneratedFunction : public Printable { + struct CanonicalKey { + // The Interface from Core. + SemIR::SpecificInterfaceId specific_interface_id; + // The self type for the operation. + // + // TODO: If the above becomes an Interface-with-Self specific, then this + // separate ID can be removed. + SemIR::TypeId self_type_id; + // The name of the function in the Core interface specified by the specific. + SemIR::NameId name_id; + // TODO: Also include parameters to support overloaded functions. Then use + // them in mangling. + + auto operator==(const CanonicalKey& rhs) const -> bool = default; + }; + CanonicalKey canonical_key; + + // The canonical FunctionId for this Generated special function. There will + // only be one Function for a given Key value. This will contain the canonical + // values shared (with local ID mappings) across all files. + SemIR::FunctionId function_id; + // The owning declaration of the canonical generated Function. This will be + // local to, and thus different, in each file. + SemIR::InstId decl_id; + // The builtin function to execute when called. This will be None if the + // Function has a generated body. + SemIR::BuiltinFunctionKind builtin_function_kind; + + auto GetAsKey() const -> const CanonicalKey& { return canonical_key; } + + auto Print(llvm::raw_ostream& out) const -> void { + out << "{"; + out << "specific_interface_id: " << canonical_key.specific_interface_id + << ", name_id: " << canonical_key.name_id + << ", function_id: " << function_id << ", decl_id: " << decl_id + << ", builtin_function_kind: " << builtin_function_kind; + out << "}"; + } +}; + +using GeneratedFunctionStore = + CanonicalValueStore, GeneratedFunction>; + } // namespace Carbon::SemIR namespace Carbon { extern template class ValueStore>; +extern template class CanonicalValueStore< + SemIR::GeneratedFunctionId, SemIR::GeneratedFunction::CanonicalKey, + Tag, SemIR::GeneratedFunction>; } // namespace Carbon #endif // CARBON_TOOLCHAIN_SEM_IR_FUNCTION_H_ diff --git a/toolchain/sem_ir/ids.h b/toolchain/sem_ir/ids.h index 7f11dcd2c868..93d5c0e4ad28 100644 --- a/toolchain/sem_ir/ids.h +++ b/toolchain/sem_ir/ids.h @@ -971,6 +971,14 @@ struct ClangSourceLocId : public IdBase { using IdBase::IdBase; }; +// The ID of a `GeneratedFunction`. +struct GeneratedFunctionId : public IdBase { + static constexpr llvm::StringLiteral Label = + "canonical_core_witness_function"; + + using IdBase::IdBase; +}; + // An index for element access, for structs, tuples, and classes. struct ElementIndex : public IndexBase { static constexpr llvm::StringLiteral Label = "element"; diff --git a/toolchain/sem_ir/mangler.cpp b/toolchain/sem_ir/mangler.cpp index f1ec078f9297..ddd81fb27623 100644 --- a/toolchain/sem_ir/mangler.cpp +++ b/toolchain/sem_ir/mangler.cpp @@ -217,11 +217,31 @@ auto Mangler::MangleImpl(SemIR::FunctionId function_id, case SemIR::Function::SpecialFunctionKind::CppThunk: break; - case SemIR::Function::SpecialFunctionKind::CoreWitness: + case SemIR::Function::SpecialFunctionKind::Generated: { os << "."; - MangleFingerprint(os, &sem_ir(), function.self_param_id); + const auto& canonical_key = sem_ir() + .generated_functions() + .Get(function.generated_function_id()) + .canonical_key; + auto specific_interface = sem_ir().specific_interfaces().Get( + canonical_key.specific_interface_id); + if (specific_interface.specific_id.has_value()) { + const auto& specific = + sem_ir().specifics().Get(specific_interface.specific_id); + // TODO: Should we use the fully qualified name of each argument (and + // any parameters each type has...) when possible? + MangleFingerprint(os, &sem_ir(), specific.args_id); + os << "."; + } + MangleFingerprint( + os, &sem_ir(), + sem_ir().types().GetTypeInstId(canonical_key.self_type_id)); + // TODO: We want to include the function's parameters here when they are + // part of the GeneratedFunction::CanonicalKey to disambiguate overloads. + // Or perhaps using the index of the function in the witness table? os << ":core"; break; + } case SemIR::Function::SpecialFunctionKind::Thunk: os << ":thunk"; if (function.thunk_id().has_value()) { @@ -242,7 +262,7 @@ auto Mangler::MangleImpl(SemIR::FunctionId function_id, case SemIR::Function::SpecialFunctionKind::Builtin: CARBON_FATAL("Attempting to mangle declaration of builtin function {0}", - function.builtin_function_kind()); + function.non_generated_builtin_function_kind()); case SemIR::Function::SpecialFunctionKind::HasCppThunk: CARBON_FATAL("C++ functions should have been handled earlier"); } diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index f5293e5db77c..d8323cc9fdcd 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -706,6 +706,11 @@ struct CustomWitness { // Always the type of the builtin `WitnessType` singleton instruction. TypeId type_id; // The witness table of instructions. + // + // TODO: Change this to a ImplWitnessTable (or similar) instruction to move + // the InstBlock out of line, so that we can use the witness InstId while we + // build up the table entries for the CustomWitness, and mutate the table as + // we go. InstBlockId elements_id; // The `SpecificInterface` of the lookup query. SpecificInterfaceId query_specific_interface_id;